vivado 编译&仿真 bug 集合(持续更新)

        在CMV8000和ov7725这两个项目的工作过程中,遇到了各种各样的大小问题,有的出现在编译的时候,有的出现在debug的时候,有的出现在仿真的时候,林林总总,大致的总结一下,以后再遇到类似的问题可以少走弯路。我使用的软件环境是vivado 2017.3。

1:使用vivado自带的仿真工具,仿真的时候出现只要一添加子模块里面的信号到波形窗口,波形窗口就卡死,等一会儿才稍微能动,波形缩小看到有高电平,放大后全是低电平,而且testbench模块的输出信号全是0。这让我十分的不解。最后才发现原来是因为在source code 里 if  else 语句 else 后有多条语句时,千万一定要用begin  end 括起来。要不然就会出现上述的问题。修改了以后马上好了。

2:CMV8k 使用spi总线对sensor进行寄存器配置,管脚分配的时候原理图上 spi的输出out 和输入in 管脚,很容易搞反,我在一开始的时候就出现了这个问题,debug核插入后,始终检测不到。there is no debug croe ,采样频率已经很高了,被采样信号的时钟分配也没错,程序烧到板子上后总是检测不debug核,突然想是不是管脚分配不对,试着换了一下果然通了。原理图设计的时候管脚命名每个人的习惯不一样。要注意。

3:vivado 在生成bit流文件的时候要求,不能有闲置的output,要把所有的管脚都分配好,除了专用管脚专用分配外,其余的管脚也要分配到闲置管脚上,否则生成bit流文件时会报错。

4:vivado 仿真时提示:Iteration limit 10000 is reached. Possible zero delay oscillation detected where simulation time can not advance. Please check your source code. Note that the iteration limit can be changed using switch -maxdeltaid. 报错的原因在xilinx官网有网友提问,当然也有网友解答了这个问题,检查FSM设计,事实证明确实没错,在写FSM时,两段式状态机或者三段式状态机,状态的改变在always中属于组合逻辑,要特别注意使用阻塞赋值方式,这也是我没有注意到的点,修改之后马上正常了。

5:vivado 软件在set up debug 以后,正常会在左边窗口直接显示插入的ila核,但是有时候也会出现不能显示的问题,明明已经按照步骤插入了debug核,为什么看不到?我用规范的方法插入了ILA核,在我的笔记本上RTL中没有显示ILA核,把工程copy到另一台电脑上再打开就ok了,所以软件有时会有bug ,只要操作是按照规范来的就行。

6:ILA核的时钟设置要注意,尽量使用晶振产生的时钟经过PLL后分出来,否则有可能出现检测不到debug core的情况。

同时,采样时钟一般设置为被采样时钟的3倍,不推荐设置小数倍数的采样频率,否则采样到的信号会不均匀。

7:CMOS在配置好以后,出现控制通道正常,输出像素数据全都是1的情况,一般有两种可能,第一种可能就是曝光时间过长像素饱和了,第二种情况是寄存器没有配置对,要仔细查看datasheet,某一个寄存器设置不正确都有可能导致意想不到的问题。

8:在线逻辑分析抓的是信号在某一个状态的情况,因此如果要对状态机中的某一个信号进行观察,需要让这个状态机循环起来,否则只能抓到状态机末状态的时候该信号的状态。

9:在使用PLL分频的时候,有时候会出现当出入时钟确定时,分出来的频率出现非整数频率的情况,这是因为每个PLL内部有个分频/倍频系数,这个系数和输入时钟有关,当出现非整数频率的时候可以改变输入频率的大小解决这个问题,即PLL+PLL的形式。

10:

 

 

 

 

Vivado 2019 是赛灵思(Xilinx)公司开发的一款集成电路设计工具,用于开发FPGA(现场可配置门阵列)和SoC(片上系统)。它提供了一整套的工具链,包括设计、仿真和烧录等步骤,以下是Vivado 2019编译仿真烧录的全过程: 1. 设计:使用Vivado 2019打开工程,并创建新的设计文件。可以使用VHDL或Verilog语言进行设计,也可以使用系统级设计语言(例如,SystemVerilog)进行高层次的建模。 2. 编译:在Vivado中,通过“综合”和“实现”两个步骤来进行编译。综合将设计文件转化为逻辑网表,将高级代码转化为底层的门级描述;实现则将逻辑网表映射到目标FPGA的具体资源。 3. 仿真:在编译完成后,使用Vivado提供的仿真工具进行功能验证。可以通过创建测试台(testbench)和添加测试向量(test vector)来测试设计的正确性。 4. 约束:为了确保设计的正确运行,需要对设计进行约束。约束可以是时序约束、引脚约束等。在约束文件中定义约束,然后在综合和实现过程中应用这些约束。 5. 生成比特流文件:编译完成后,需要生成比特流文件(bitstream)以供烧录到目标FPGA中。比特流文件是一种二进制文件,描述了设计在FPGA上的物理连接。 6. 烧录:将生成的比特流文件加载到目标FPGA中,使其成为可执行的硬件。可以使用Vivado提供的硬件编程工具,如JTAG或USB下载线,将比特流文件下载到FPGA中。 总结:Vivado 2019编译仿真烧录的全过程包括设计、编译仿真、约束、生成比特流文件和烧录等步骤。通过这些步骤,可以将设计文件转化为可在FPGA上运行的硬件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值