IP例化和几个基于FPGA芯片实现的Demo工程分享
Memory type选择简单双口ram,memory size设置位宽8bit深度1024。
设置完成后,生成的module声明如下。(完整模块可参考代码)
然后编写顶层文件并且在顶层例化PLL和RAMA、RAMB。
顶层文件中主要是对ram的输入口进行时序操作,包括ramA、ramB的读地址,写地址、使能信号和输入输出数据,详细代码笔记中不再赘述,可以直接参考代码。
可综合模块编写完成后,编写仿真模块并使用仿真软件进行仿真。
由于本次工程使用到了安路的IP库,因此也需要在modelsim中添加相应的安路仿真库,添加方法如下:
首先在modelsim的安装目录下面编辑modelsim的初始化文件modelsim.ini,右键属性后,将它的只读属性取消,然后用文本文件(本工程使用的是notepad++)编辑。
在modelsim.ini的[library]列表下添加安路的仿真库文件目录,安路所有的仿真库文件都在安路的编译软件TD安装目录下的sim文件夹中,此处将其所有的库文件都复制进了modelsim的文件夹里,若不复制,也可直接输入安路文件夹的路径。
保存后退出,打开modelsim并创建工程,编译通过后,进入仿真步骤,在simulate状态栏下选择start simulate,如下图:
选择后进入到如下页面:
选择仿真的顶层并且关闭优化选项。
同一个窗口打开libraries页面并在search libraries栏右侧选择add,下拉列表选择对应的ef3的库文件。
设置完成后点击OK进入仿真即可。
本次实验中遇见问题和调试如下:
01
刚开始pll没有输出信号,因此打开了pll查看波形发现pll波形如下:
发现是置位了reset信号导致的,查看代码发现如下:
复位信号直接连接到了pll的置位信号,由于复位信号是低电平有效而置位信号是高电平有效,因此导致了pll一直处于复位的情况。更改后,直接将pll复位信号置0,代码和仿真结果正常,如下所示:
02
PLL问题解决后,观测数据整体读写情况。
初步观测可以发现,rama读使能信号只转变了一次,而ramb的读使能始终未能跳变,返回代码查看发现:
逻辑判断时未将rama的写使能信号置1的条件写出来。
ramb的写使能同理:
修改后,代码如下:
波形仿真如下:
粗看基本符合rama、ramb交替读写的功能,观测rama、ramb时序交替细节。
在rama和ramb写使能信号转换时,发现空了一拍,再查看代码,发现rama、ramb写使能在条件判断时,使用的判断逻辑是不一样的,导致ramb_wren的置位会在rama_wren置位后的下一拍进行。
因此更改ramb_wren的判断条件,使之与rama_wren的一样,都以写地址为条件判断再仿真。
可观测到,时序正常。
quick start & GPIO Demo
本次demo实现功能如下:FPGA控制LED D1闪烁,MCU控制LED D2常亮。
图片新闻
最新活动更多
-
5月10日立即下载>> 【是德科技】精选《汽车 SerDes 发射机测试》白皮书
-
5月16日火热报名>>> OFweek锂电/半导体行业数字化转型在线研讨会
-
5月22日立即报名>>> OFweek 2024新周期显示技术趋势研讨会
-
5月28日立即观看>> 【在线研讨会】Ansys镜头点胶可靠性技术及方案
-
5月31日立即报名>> 【线下论坛】新唐科技2024未来创新峰会
-
6月18日立即报名>> 【线下会议】OFweek 2024(第九届)物联网产业大会
- 1 拆机实锤!华为Pura70使用新芯片,推测为7nm,性能如何?
- 2 华为P70系列即将强势来袭,能否再次复制华为Mate60系列的辉煌?
- 3 中国芯片基地诞生:一年产量1055亿颗,占全国30%,三省共占67%
- 4 华为麒麟9010、苹果A17、高通8Gen3对比,差距有多大?
- 5 避免内卷?中国大陆4大芯片代工厂,产能、营收、优势介绍
- 6 形势严峻!暴增256%,中国还在疯狂进口ASML光刻机
- 7 过去14个月,山东从荷兰进口了12台光刻机
- 8 华为Pura70又打脸了?美国商务部长:华为芯片没那么先进
- 9 MTK和Intel联手,投资RISC-V芯片新贵谋发展?
- 10 华为Pura70证明:我们7nm已没问题,接下来是5nm、3nm
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论