quartus [IP-Core] altlvds_tx & altlvds_rx

本文详细介绍了Alter公司的Quartus II软件中LVDS IP核的使用方法,包括差分发送端altlvds_tx和接收端altlvds_rx的配置参数、工作原理及仿真结果分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 概述


     Alter公司的QuartusII软件提供了LVDS发送和接收的IP核供我们使用,其在本质上可以理解为并行-串行数据的转换器。其在官方文档(见附件)上也这样说过。其中的应用场景有告诉AD/DA的数据传输等。
     那在此我们就针对这一IP核进行了解、熟悉和测试。首先我们来对差分发送端进行学习。 

2. altlvds_tx

     图2.1所示为一个简单的差分发送端,其有两个输入,一个为输入时钟,一个为输入数据。两个输出为穿行输出数据和输出时钟。

图2.1     altlvds_tx的RTL视图

     下面进入IP核配置部分,对主要的一些参数进行介绍说明。首先图2表示了其设置参数,图2.1中的number of channels(C)是通道数目,表示一共有多少通道的差分数据,例如C=4时,对应就为tx_out[3:0]。deserialization factor(J)表示串并参数,例如J=8,C=1时,对应为tx_in[7:0];J=8,C=2时,对应为tx_in[15:0]。

图2.2     通道数目和并行长度参数

     下面为输出比特率和工作频率的设置,其应满足一定的规则,比如在本例中,串并参数J=8,那么应该有80Mbps=10MHz*8bit。此处应保持一定的一致。

图2.3,输出比特率和工作频率

     输出时钟时钟设置与否,根据divide factor(B)来限定输出时钟的频率特性。下图中的B=2表示了输出时钟tx_outclk频率为模块输入时钟频率的一半。

图2.4,勾选输出时钟和设置分频参数

     在规定完上述的参数设置后,进行波形的仿真,从中模块的四个输入输出可以看出该模块的具体功能。

图2.5     仿真波形图结果

3. altlvds_rx

     图3.1为一个简单的差分接收端,其有两个输入,一个输入时钟,一个输入数据。一个输出为输出并行数据。

图3.1     altlvds_rx的RTL视图

     下面进入IP核配置部分,对串并参数J进行设置,下图中是将J设置为J=2。

图3.2     并串转换输出因子

     图3.3为仿真结果,从图中看出输入数据为循环序列01000111,其由接收器接收,每次在一个时钟周期内接收两个字节。从仿真结果中看出,就收为低位在前。原序列接收为10,00,10,11。且每次接收数据为时钟下降沿和时钟的当前上升沿。如图3.4所示。


图3.3      仿真波形图结果

图3.4     从上到下依次为输入时钟,输入数据,输出数据

### 使用 RS232 IP 进行 FPGA 开发和配置 #### 1. 工具环境准备 为了使用 Quartus II 中的 RS232 IP 进行开发,需确保已安装 Quartus II 软件及其相关支持库。文中提到使用的版本为 Quartus II 18.0 标准版,并搭配 EP4CE6F17C8N 型号的 FPGA 芯片以及 CH340G USB 转串口设备[^1]。 #### 2. 创建项目并添加 RS232 IP Quartus II 中创建一个新的工程后,可以通过 MegaWizard Plug-In Manager 或者直接从 IP Catalog 添加 RS232 IP 。具体操作如下: - 打开 **MegaWizard Plug-In Manager** 并选择合适的通信协议(如 UART/RS232)。 - 设置波特率、数据位宽、停止位数以及其他参数以匹配目标应用需求。 #### 3. 配置 IP 参数 对于 RS232 接口的心功能定义,通常需要指定以下几个关键参数: - 波特率 (Baud Rate): 控制传输速度,默认常用值包括 9600, 115200 等; - 数据宽度 (Data Width): 单次发送的数据长度,一般设为 8 bit; - 停止位数量 (Stop Bits): 可选单停或双停模式; - 流控制选项 (Flow Control Options): 是否启用硬件握手信号 RTS 和 CTS。 完成上述设置之后生成对应的 Verilog/VHDL 文件用于后续综合与仿真验证过程之中。 #### 4. 实现顶层模块连接 将生成好的 IP Core 模块实例化至整个系统的顶层设计当中去,并正确映射其输入输出端口到实际物理管脚上。例如,在 AX301 开发板上的典型接线方式可能涉及 TXD/RXD 引脚分配给外部串口适配器(CH340G)。 以下是简单的Verilog代码示例展示如何实例化该IP: ```verilog module top_module ( input wire clk, input wire reset_n, output reg tx_data_ready, input wire rx_data_valid, inout wire rs232_txd, inout wire rs232_rxd ); // Instantiate the RS232 IP core here. rs232_ip_core u_rs232_ip_core( .clk(clk), .reset_n(reset_n), .tx_data(tx_data), // Example data to transmit .rx_data(rx_data), // Received data from external device .tx_data_ready(tx_data_ready), .rx_data_valid(rx_data_valid), .rs232_txd(rs232_txd), .rs232_rxd(rs232_rxd) ); endmodule ``` 此部分还需注意的是要按照具体的电路板手册来设定相应的I/O标准及时序约束条件。 #### 5. 上位机软件配合调试 除了底层硬件逻辑构建外,还需要编写配套PC端应用程序来进行交互测试。这里可以利用 LabVIEW 编程工具快速搭建图形化的用户界面(UI),并通过虚拟仪器技术捕获来自FPGA发出的数据包或者向其下达命令序列[^2]。 最后一步就是通过烧录工具把最终编译出来的bitstream文件下载加载进目标器件内部存储空间里执行运行效果评估工作流程[^3]。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值