02PLL_TEST_在线调试仿真实验
软件版本:Fuxi2022.1
操作系统:WIN10 64bit
硬件平台:适用京微齐力FPGA
登录"米联客"FPGA社区-www.uisrc.com视频课程、答疑解惑!
1概述
前面一节课我们完成了基于Fuxi软件工程的创建、FPGA代码的创建,并且实现了modelsim的联合仿真。本节课实验中,我们将添加debug-core 在线逻辑分析仪,并且添加PIN脚约束,通过下载程序到FPGA中实现在线逻辑分析仪监控芯片的关键内部信号运行情况。
2添加PIN脚约束
Fuxi软件目前添加PIN脚约束只能通过向导方式,所以需要先实现RTL的综合,这样软件才能识别到端口的IO名称(后期Fuxi应该也会支持直接添加文本方式的PIN脚约束)。
如果综合有错误,需要修改后重新综合
之后单击IO Editor就可以添加PIN脚了
Port Name:端口信号名称
Location和Pin Name都是可以约束到具体的IO上的,其中location是X芯片封装的IO位置,而Pin Name对应了IO的功能
Direction:代表了信号的传输方向,这个也是由代码的端口信号决定
Operation Mode:操作模式,可以看到Fuxi可以自动识别是时钟还是普通IO信号
Fast Input:是否是高速输入信号
Fast Output:是否是高速输出信号
Bank: IO所在的BANK位置
IO Stander 选择IO电平,正确的IO电平可以达到最大的速度
Drive Strength(mA):电流驱动能力,这里选择默认8ma
Bus Keeper:暂时不知道什么功能
Slew Rate:设置信号的速度类型
Transceiver I/O Termination:终端电阻设置
Input Delay:输入延迟时序约束
Output Delay:输出延迟时序约束
设置完成后保存
3添加时序约束
单击箭头所指图标
可以选择创建一个新的时序约束文件,或者一个已经存在的时序约束文件
首先对系统输入时钟约束
之后设置正确的时钟频率或者周期
以同样的方式对PLL输出的时钟约束
之后保存约束
提示是否添加到当前的工程,单击YES
刷新下,就能看到timing.sdc添加进来了
4添加Debugware在线调试逻辑分析仪IP核
可以根据用户习惯取一个容易记住的名字
设置支持的LA Core数量,我们这里选择1个
Data With设置数据的位宽,最大支持1024个信号
Memory Depth设置支持的采样深度,设置的越大消耗的Block RAM越多,也可能导致时序违规
单击Finish后,单击OK
刷新下
可以看到出来了dbwave IP
trig_out:目前不清楚如何使用,一般也用不到
data_in:需要被观察的信号
ref_clk:采样时钟
在代码中调用dbwave模块,并且设置号参考时钟和被观察信号
5FPGA工程编译
1:设置编译模式
设置如下,Compression Algorithm 选择 High Compression Ratio 这样后面下载FLASH的时候可以快一些,其他默认
2:编译
可以一键编译,单击箭头所指
也可以分步编译
编译输出,提示有6个waring
这个暂时不管
6查看时序报告
可以看到时序都满足要求,没有违规
7在线调试
1:下载程序
先把之前编译好的程序下到FPGA,这里对于P1下到FLAHS更快
2:启动debug
之前点击在线调试图标
默认所有信号支持触发功能,我们应该选择关键信号作为触发信号。
3:设置触发信号
对于Fuxi软件这里无法以信号命名的方式直观显示,我们自己需要自己知道是哪一个信号,比如rigo_in_0对应的是我们dbwave中的cnt[0]
这里为了观察方便,我们设置计数器cnt[5]作为触发信号
4:运行
单击Run
5:auto-pick功能使用
这个信号看起来不怎么友好,但是Fuxi具有auto-pick功能
比如我们想把高2bit命名位led 其他继续命名位cnt,必须确保我们自己清楚哪一个命名对应哪一个信号
比如cnt[25:0]={up_led[1:0],cnt[23:0]}
右击信号总线,右击选择Create Bus
单击auto pick
根据提示可以,这样定义我们的信号名称,你也可以自己定义其他名称,主要是搞清楚关系即可
创建完成后,可以看到多了cnt[23:0]和up_led[1:0]
6:设置数值显示方法
对于计数器,选择设置十进制的方法更加直观
7:设置显示原始名字
本文来米联客(milianke),作者:米联客(milianke),转载请注明原文链接:https://www.cnblogs.com/milianke/p/16332029.html