原创 【博客大赛】使用Qsys快速创建ALTERA PCIe设计介绍(续)

2015-4-28 09:04 5912 17 14 分类: FPGA/CPLD 文集: PCIE

(由于每个文章最多只能上传20张图片,所以这篇文章被人为地分为两部分)

0.jpg

图19:连接完成的Qsys

3.  在IRQ列连接DMA的中断到PCIe硬核,连接DMA的control_port_slave到PCIe的中断,如图20所示。

0.jpg

图20:DMA中断连接到PCIe硬核

4.  将PCIe硬核的校准模块的接口输出到Qsys系统外面,可以看到在“export”列,每个接口都有灰色的提示“双击导出”,如图21所示,双击cal_blk_clk接口将其导出Qsys系统

5.  确认导出接口名称为pcie_hard_ip_0_cal_blk_clk,如果需要可以修改到上述名称。

0.jpg

图21:导出PCIe硬核校准模块时钟

    如图21所示,cal_blk_clk在connection列应该有一个导出的引脚符号,但是12.1和13.0目前还没有解决这个问题问题,所以这里我们看不到导出的引脚符号。

6.  按照表2所示,为PCIe硬核导出剩下的接口。

表2:需要导出的PCIe硬核接口

接口名称

被导出的端口名称

refclk

pcie_hard_ip_0_refclk

test_in

pcie_hard_ip_0_test_in

pcie_rstn

pcie_hard_ip_0_pcie_rstn

clocks_sim

pcie_hard_ip_0_clocks_sim

reconfig_busy

pcie_hard_ip_0_reconfig_busy

pipe_ext

pcie_hard_ip_0_pipe_ext

test_out

pcie_hard_ip_0_test_out

rx_in

pcie_hard_ip_0_rx_in

tx_out

pcie_hard_ip_0_tx_out

reconfig_togxb

pcie_hard_ip_0_reconfig_togxb

reconfig_gxbclk

pcie_hard_ip_0_reconfig_gxbclk

reconfig_fromgxb_0

pcie_hard_ip_0_reconfig_fromgxb_0

fixedclk

pcie_hard_ip_0_fixedclk

 

完成上述操作后,PCIe硬核在Qsys中就如图22所示那样。

0.jpg

图22:在Qsys中完成整个配置和连接的PCIe硬核

         步骤6:调整系统地址空间

  1. 在System Contents里的Base列,我们为PCIe硬核的cra分配的地址为0x0000_0000.
  2. 按照表3所示分配剩下设备的地址空间。

表3:地址空间分配表

Component

Interface

Base Address

pcie_hard_ip_0

txs

0x0000_0000

dma_0

control_port_slave

0x0000_4000

onchip_mem_0

s1

0x0020_0000

地址空间分配好以后,Qsys系统如图23所示。

0.jpg

图23:分配好地址空间后的Qsys系统

         步骤7:选择最终设置并生成Qsys系统

         这一步,我们选择好最终的系统设置以后,生成Qsys文件,然后准备继续开始剩下的硬件设计。

  1. 在Qsys工具里,选择地址映射标号,确认所有的地址映射和之前的步骤5所做的连接相匹配,如图24所示。0.jpg

图24:系统地址映射

        2. 在时钟设置标号下,确认PCIe硬核为系统产生的是125MHz时钟。

       3.      在工程设置标号下,查看系统导出的接口都是可见的,并在参数框里选择合适选项,如图25所示。

0.jpg

图25:查看工程设置及系统导出接口

  1. 生成系统。
    1. 在Generation标号下,让所有仿真选项设置为None。
    2. 系统测试激励也设置为none。
    3. 在综合块,使能创建符号文件(.bsf)选项。
    4. 点击Generate。
    5. 点击Save保存系统并开始生出系统。

系统生成的时候,我们可以看到若干警告,但是没有了错误。

5. 关闭生成完成窗口和关闭Qsys工具

步骤8:在Quartus软件里完成顶层文件设计,并对工程进行编译。

         这里我们预先设计好了一个基于Verilog名为civgx_gen1x4_qsys_top.v的顶层文件,其原理框图如图26所示。

0.jpg

图26:顶层设计框图

         可以看到在Qsys系统外,我们还需要其他一些逻辑设计,比如PLL、GXB重配置以及PCIe硬核重配置等。PLL为PCIe硬核产生一个125MHz的参考时钟,同时产生一个50MHz的校准时钟和GXB重配置时钟。

  1. 添加Qsys系统生成的QIP文件和SDC文件到工程,打开文件添加对话框:
    1. 浏览到目录\civgx_gen1x4_qsys\synthesis文件夹下。
    2. 改变文件类型,选择IP Variation Files(*.qip)选择刚刚生成系统的.qip文件。
    3. 点击打开并添加到工程。
    4. 点击OK关闭添加文件对话框和Settings窗口。

通过上述简单的添加QIP文件,将Qsys工具产生的综合文件都添加到了工程,SDC文件在顶层约束了一个50MHz的时钟。

  1. 打开顶层设计文件,即civgx_gen1x4_qsys_top.v。
  2. 查看该文件,并注意以下:
    1. 顶层端口(FPGA的IO),包括两个独立的时钟源,一个复位和4-bit的高速收发通道(RX和TX)。
    2. Qsys系统的实例化,可以直接从Qsys工具里的HDL example下复制过来。许多被定为管道的接口都是用于仿真或者调试,所以它们并不一定要在顶层连接到具体的逻辑。
  3. 编译设计。点击0.jpg 按钮对工程进行全编译。

参考

[1] Avalon接口协议

[2] PCI-E hard IP User guide

[3]

 

 

 

 

 

 

 

PARTNER CONTENT

文章评论13条评论)

登录后参与讨论

用户3879639 2019-8-15 17:04

感谢,请问这个帖子的附件在哪里可以下载?没找到连接

用户3801860 2016-4-9 11:05

十分感谢,帮大忙了

用户1867523 2016-3-30 09:04

为什么把芯片换成ep4cgx15bf系列的就不行呢?顺便问一下原理框图中的gxb模块有什么用啊?

用户610368 2015-12-24 21:43

我这没有报错,我是从官网下的例子

用户610368 2015-12-13 11:55

您好,这个工程怎么添加读写接口啊

用户610368 2015-12-13 11:49

这个工程不添加Nios2的情况下,怎么读写数据啊

用户610368 2015-12-12 15:03

你好,这个qsys PCIE工程怎么添加用户接口啊,怎么读写数据啊

用户1721880 2015-6-2 14:55

你好,我在上面的工程时,为什么我编译上面的工程以后会报错啊,谢谢啊?

coyoo 2015-4-28 09:04

整个工程都上传了

用户1826728 2015-4-27 16:09

对了 能不能同时把PLL、GXB的文件发一下,我是个新手,谢谢啦
相关推荐阅读
coyoo 2024-12-25 14:13
ALTERA Cyclone 10器件的使用-8:特定的上电顺序
概述 Intel 要求用户为其10代FPGA器件使用特定的上电和掉电顺序,这就要求用户在进行FPGA硬件设计的时候必须选择恰当的FPGA供电方案,并合理控制完整的供电上电顺序。经过在Cyclone 1...
coyoo 2024-12-22 11:46
AD9218子板在新处理板上表现的问题
概述 新的数据处理板融合了数字和数据处理功能模块,计划采用ADI的4通道串行ADC芯片代替之前的并行ADC。由于初次使用,所以初次设计时预留了AD9218的子板的插槽。 在调试AD9633功能的同时并...
coyoo 2024-12-14 17:15
在Cyclone 10 GX器件上实现高精度TDC探索
概述 Cyclone 10 GX器件的ALM结构与Cyclone V类似,所以在Cyclone 10 GX器件上实现TDC功能理论上是可以完全参考甚至移植自Cyclone V系列的成功案例。但是,现实...
coyoo 2024-12-10 13:28
Cyclone V GX FPGA设计TDC的优化问题
概述 通过前面的研究学习,已经可以在CycloneVGX器件中成功实现完整的TDC(或者说完整的TDL,即延时线),测试结果也比较满足,解决了超大BIN尺寸以及大量0尺寸BIN的问题,但是还是存在一些...
coyoo 2024-12-03 12:20
比较器检测模拟脉冲说明(四)
概述 说明(三)探讨的是比较器一般带有滞回(Hysteresis)功能,为了解决输入信号转换速率不够的问题。前文还提到,即便使能滞回(Hysteresis)功能,还是无法解决SiPM读出测试系统需要解...
coyoo 2024-11-16 13:54
不同ADC采样同一前端模拟信号时转换用时差异分析
概述 同一组前端模拟信号接入由不同型号ADC组成的模数转换电路时,采样后在FPGA中发现采样用时差异较大。本文主要分析这个时间差异形成的原因,并记录该差异产生对系统造成的影响。系统数字化简介 项目前端...
EE直播间
更多
我要评论
13
17
关闭 站长推荐上一条 /3 下一条