为了账号安全,请及时绑定邮箱和手机立即绑定

利用ZYNQ SOC快速打开算法验证通路(6)——利用AXI总线实时配置sysGen子系统

标签:
算法

利用ZYNQ验证算法的一大优势在于,可以在上位机发送指令借助CPU的控制能力和C语言易开发特点,实时配置算法模块的工作模式、参数等对来对其算法模块性能进行全面的评估。最重要的是无需重新综合硬件模块。

  接着上篇该系列博文,在sysGen中设计模块功能为:根据模式选择输入,来完成乘2或除2两种运算,0乘1除。

  测试激励选用From Workspace模块,从MATLAB工作空间导入数据。利用MALTAB脚本可以非常容易地生成任意数据集,极大体现了sysGen开发的优势。

  设计完成调用xilinx waveform viewer,两种运算行为仿真波形如下:

  功能验证无误,关键的一点是让mode端口以AXI总线形式传递数据。

  现在将sysGen算法子系统生成IP核,并导出到IP Integrator中作为CPU外设。

  可以看到multi_div_constant模块多出一个multi_div_constant_s_axi总线接口集。这里本人有个疑问:为什么sysGen中选择mode接口服从AXI-Lite总线形式,而生成的接口却为AXI-Full形式?虽然不影响使用,也希望有看到的朋友帮忙解答这个疑惑。

  硬件系统设计完毕,导出硬件启动SDK。当新建工程后,能看到AXI总线驱动自动添加进来了。

  multi_div_constant_hw.h内部为AXI-Lite总线寄存器地址,multi_div_constant.c内是驱动函数的具体实现。

  C代码对算法模块进行板级验证:

   启动Debug,点击运行查看软件运行结果和AXI-Stream总线时序波形。

  SDK中串口打印结果及Memory窗口查看DDR接收缓存绝对地址。

  正确启动了两次DMA环回传输,第一次算法模块工作在乘2模式,第二次则除2.C代码中测试返回数据与生成测试数据关系无误,DDR绝对地址数据也别正确更新。

原文出处:https://www.cnblogs.com/moluoqishi/p/9648928.html  

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消