cpu设计实战
文章平均质量分 75
玩具,玩具而已
created by chenbo.
kono_jojo_da
这个作者很懒,什么都没留下…
展开
-
cpu设计实战 lab 5
LAB 5简述经过 lab 4 的讨论,lab 5其实蛮简单的了,我们现在实现的 19 个指令除了 load 指令,都可以在执行期得到写回的数据,于是除了 load 都可以直接向译码级前递,而 load 在执行级时,若和译码级的指令发生写后读,则暂停一拍。还有一个问题,如果译码级和多级都发生写后读,我们应该选取最新的值,即离此条指令最近的一次写后读进行前递,即需要一个具有优先级四选一选择器,选择是三条前递路径中的还是当前寄存器堆读出的。现在目标就很明确了,让我们动笔吧。开冲回写级寄存器号 5原创 2021-05-31 22:21:02 · 741 阅读 · 1 评论 -
cpu 设计实战 lab 4
LAB 4流水线的阻塞技术我们先分析下这个三级流水线是如何阻塞的assign pipe2_ready_go = ...assign pipe2_allowin = !pipe2_valid || pipe2_ready_go && pipe3_allowin;assign pipe2_to_pipe3_valid = pipe2_valid && pipe2_ready_go always @(posedge clk) begin if (原创 2021-05-31 22:20:19 · 753 阅读 · 0 评论 -
cpu设计实战 lab3
CPU 设计实战 LAB 3让我们一起DEBUG第一处首先可以发现的是 DEBUG 信号全部都是 X ,于是顺着 DEBUG_PC 信号往前走就可以发现有一位是 Z,说明 wire 信号未被赋值。我们在下面给 load 赋值即可。第二处改完上一处仍然没能让 DEBUG 信号出现,我们顺着 DEBUG 信号可以找到 ds_valid 信号一直未被赋值。作如下修改第三处从现在开始 DEBUG 信号已经 work 了,可以用 trace 进行 debug 了。reference:原创 2021-05-29 02:18:28 · 1799 阅读 · 1 评论 -
cpu设计实战 lab2
lab2Regfile 仿真创建工程,添加已有的设计文件。module regfile( input clk, input [ 4:0] raddr1, output [31:0] rdata1, input [ 4:0] raddr2, output [31:0] rdata2, input we, input [ 4:0] waddr, input [31:0] wdata);reg [31:0] rf[31:0];//原创 2021-05-25 01:23:52 · 753 阅读 · 0 评论