IP例化和几个基于FPGA芯片实现的Demo工程分享

润欣科技
关注

【技术分享】FPGA杂记之基础篇二及Demo案例

【技术分享】FPGA杂记之基础篇二及Demo案例

3.4 顶层

【技术分享】FPGA杂记之基础篇二及Demo案例

3.5 仿真

【技术分享】FPGA杂记之基础篇二及Demo案例

【技术分享】FPGA杂记之基础篇二及Demo案例

【技术分享】FPGA杂记之基础篇二及Demo案例

本次仿真使用到了task语句,task语句通常在当仿真时需要给输入变量特定的输入值时使用,例如本次仿真对rx端进行赋值。

3.6 仿真结果及问题排查

Rx端:

整体波形如图:

【技术分享】FPGA杂记之基础篇二及Demo案例

查看细节如下:

【技术分享】FPGA杂记之基础篇二及Demo案例

当rx=1时,输出的o_data并行数据在o_flag = 1(即表示传输结束)时也为1,结果正常。

Tx端:

整体波形如下:

【技术分享】FPGA杂记之基础篇二及Demo案例

上图很明显可以看出tx端传输有问题,当tx发送起始位(即拉低)后,没有将数据输出。观测其他信号波形,基本正常。可见问题大概率出现在tx赋值部分,一开始以为是发送数据位的条件判断有问题,检查代码,数据传输时的判断条件如下:

【技术分享】FPGA杂记之基础篇二及Demo案例

查看波形发现该条件可以被满足。

【技术分享】FPGA杂记之基础篇二及Demo案例

后来查看起始位的发送条件时发现了错误:

【技术分享】FPGA杂记之基础篇二及Demo案例

起始位发送要与tx_en同步。假设条件使用tx_en判断,则会比tx_en慢一拍。

另外,不能使用tx_en == 1'b1作为发送起始位的判断条件,因为tx_en 在数据发送时一直为1,这样tx端会恒为0,修改后代码如下:

【技术分享】FPGA杂记之基础篇二及Demo案例

再观察波形正常。

【技术分享】FPGA杂记之基础篇二及Demo案例

【技术分享】FPGA杂记之基础篇二及Demo案例

3.7 上板最终效果

代码下载进开发板后,在串口调试助手中可以正常收发数据,如下:

【技术分享】FPGA杂记之基础篇二及Demo案例

文章来源:润欣科技Fortune微信公众号

声明: 本文由入驻OFweek维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存