YangLyu

ALTERA Qsys中PCI-E IP硬核的使用

0
阅读(7982)
 软件版本: Quartus II 12.0

首先打开Qsys,如下图:

点击Qsys中的PCI下的IP_Compile for PCI Express,或者直接搜索。

接下来就是一些重要的设置,下面逐一解释:


Device Family即器件。根据不同的器件选择即可。

Number of lanesFPGA与外部收发数据所用的通道数,对应的RTL例化将会生成一组txrx的串行数据通道。

Reference Clock Frequency:输出到PCI总线的工作时钟。

Test out width: 测试用,可以不选。

PCI Base Address Register:基址寄存器,由PCI总线转换到Avalon总线后Avalon总线上需要连接的外设的地址空间,根据不同的外设需求选择BAR Size,即地址宽度,以及多个BAR。因为Avalon总线是32bit,最大寻址空间是4GB,转换到PCI-E总线是按页的方式。

以上Vendor ID等是在PCI-E总线上注册Avalon总线及设备时所需,保持默认即可。

上面设置的是数据缓存的大小,根据需求设置即可。

Periph mode:这里选择的是Completer-Only,也就是PCI-E端的CPU等为主设备,可以对Avalon上的设备进行读写请求,接受中断。如果选择的是Requester/Completer,这样既可以对Avalon上的设备进行读写请求,接受中断,也可以Avalon总线上的设备发出对PCI-E端数据包的读写请求。

CRA:控制寄存器,这里包含了一些桥接的寄存器信息,即Bridge Registers。如果选用PCI-E端读写这个寄存器,那么只要cra端口直接连接到bar0即可,当然也可以在Avalon总线段对其设置。

上图是地址转换的相关设置,如果使用者想随时调整转换地址空间的页表,选择Dynamic translation table下面设置的是页表个数和大小。一般如果希望地址空间分配是固定的,选择Fixed translation table即可。

需要输入、输出的端口如下图:

需要连接Avalon的外设连接在bar0即可。cal_blk_clk连接到Avalon总线的时钟。

这样,就可以编译出RTL代码了。

这里需要注意的是,对于Arria II GX FPGA,提供给PCI-E PLL时钟应该使用ALTGX_RECONFIG

例化如下: