【JokerのZYNQ7020】REAL_BLOCK_DESIGN。

软件环境:vivado 2017.4        硬件平台:XC7Z020


这个月的标题为啥要这样子起呢,是因为公司新入职了个同事,交流了以后才发现,卧槽!!!跟人家结构化的工程比起来,人家那模块搭的才叫真正的block_design啊,我自己工程之前一向都是牵扯到zynq核的,建一个block_design,zynq核之外的逻辑部分,都还是用.v写,然后写top组合到一起,所以今天就把这种结构化思想写一写,抛砖引玉,送给跟我之前编程习惯一样的朋友。

说明工程的思路是,从DDS产生正余弦数据,过DMA送给ZYNQ_PS端,PS端做回环,传出收到的DDS数据,而后再将SIN和COS数据在外部分离开,由于DDS与AXIS_FIFO接口不同,以及分离SIN和COS数据,所以需要自写两个.v模块分别实现对应功能。

 这是还没开始模块化操作的原始工程,之前的习惯是牵扯ZYNQ的,用block design搭建好,而后其余的部分在逻辑实现,是要接口跟block design的对上就行了,或者用tools---create and package new ip封个新的IP,但是有更简单好用的方法。

首先将两个.v的模块写好, 而后右键,选择add module to block design,将两个模块加到block design中去。

这里需要注意,如果包含ila等IP,导入block design时候会报错,这里最简单的做法是,点击ila,然后把下面红框处generate_synth_checkpoint取消掉就行了,导入完毕后,模块如图右边所示,axis接口可以被直接识别出来。

 接下来就可以重新修改block design,根据新添加的模块,更新链接关系及输入输出接口。这是修改过以后的block design,输入输出接口及连接关系比之前看起来好多了,也不用考虑外部的.v模块了。

 

然后根据系统结构,再做多一层包装,按住alt选取要包装到一起的模块,右键,选择create hierarchy。

 然后起一个响亮的名字!

其他模块也完成与此类似的操作。全部完成以后,就可以看到如下终极简化模式。怎么样,是不是结构清晰的一批!

 如果你的自定义模块需要查看代码或者需要更新,此时只需要对着你自定义模块右键,选择go to source,就能直接打开.v了。

 最终,经过整理以后的工程,是不是宇宙超级无敌清创的一批。

都编好以后,SDK中基于之前写DMA的例子,稍微改一改,DDS源看起来没问题。

 回环以后发出来的嘛,多少有点问题,但也无所谓啦,毕竟不是这篇重点,只是随便做的一个例子程序。

 

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值