cht
cht
发布于 2025-02-05 / 90 阅读
0
0

数字逻辑设计&计算机组成

寒假期间和几个小伙伴进行了交流,结果发现vivado的很多实用工具我都没有用上,导致连线和debug的时候很痛苦。。在这里分享一下~~

Vivado实用技巧

1) 仿真时查看子模块具体变量的值

  • 如图,假如说top被设置为仿真文件,如果子模块CLK_DIFF有一个reg变量a,那么在仿真过程中,我们是无法直接查看到a的值的。这对调试很不友好,那么有什么方法能看到其值呢?

答案:在仿真文件top中加入如下代码:

wire a1;
assign a1=CLK_DIFF.a;

这样wire a1就能和子模块的a连了起来,接下来我们进行仿真,在仿真页面中。在左侧的source中找到object页面

在 Object的搜索栏中搜索a1,右键,add to wave window

  • 这样就可以在仿真图找到a1信号对应的值了

2)在编写verilog程序的时候,同一个变量不能在同一个时钟上沿(或下沿)的时候被改变两次;这样会导致multi-driven问题,导致无法生成比特流。

eg.

    always @(posedge clk) begin
        reg_a<=1'b1;
    end

    always @(posedge clk) begin
        reg_a<=1'b0;
    end
  • 这样子虽然仿真不会报错,但显然会造成时序问题,使得生成的比特流无效

3) 通过schematic工具查看连线图

① 将要检查的模块设为top

② 打开schematic工具

③ 右侧显示连线图,可以单击某根线来查看此根线的所有连接情况

4) 复制工程的时候切记不能复制粘贴整个文件夹,这会导致副本和原工程共享同一个文件(即修改原工程的某个文件是时候,副本的这个文件也被修改了)

  • 应该新建一个工程,然后创建文件,复制粘贴源码进去

5) 对于需要反复调试的工程,可以把生成的比特流保存到其他位置;因为,一旦单击generate bitstream之后,不管有没有点击确认,上一次生成的比特流就会消失

资料

我们数字逻辑实验大程的报告(最后是优秀报告,被韬哥带飞)

基于FPGA的吃豆人游戏设计_设计报告.pdf

计算机组成实验,仅供参考

crualcollegee/zju_computer_organization: zju 浙江大学 计组 计算机组成 实验 (包含所有bonus的正确代码)

暄暄学长的笔记写的很好,cache这部分完全没有听课,跟着他的笔记理清了这部分,,

写在前面 - 咸鱼暄的代码空间


评论