• 青玉白露
    置顶
    2022-08-14 来自湖北
    我觉得之所以将立即数设置为不连续,主要还是为了让rs1 rs2 rd 寄存器的位置保持固定,从而提高指令流水线的效率。至于不连续的立即数,只要在译码的时候拼接就可以了。

    作者回复: 正确 正确

    
    8
  • 阿狸狸狸狸,
    2022-10-27 来自湖北
    我想请问一下,id_ex_ctrl这个译码控制模块的输入信号从哪里来?输出信号又送去哪里?

    作者回复: 控制器

    
    1
  • =
    2022-08-10 来自湖北
    localparam DEC_JALR = {1'b0, 2'b11, 1'b0, 1'b0, 1'b1, 1'b0, 2'b10, 1'b1, 1'b0, 7'b0100000, 2'b00, 1'b1}; 请问这里的7'b0100000不应该是7'b0000010吗

    作者回复: 为什么这么认为呢

    共 2 条评论
    1
  • 小傅
    2022-11-24 来自湖北
    decode signals这段代码是怎么得出来的

    作者回复: 规范

    
    
  • 小博(微信/手机号18...
    2022-08-18 来自湖北
    还是有一个地方没看懂,那个立即数的拼接规则是什么呀?

    作者回复: 立即数就是根据对应的指令格式拼接的

    共 3 条评论
    
  • 木易杨
    2022-08-18
    老师,这个写的代码有上传到git上嘛?

    编辑回复: 编辑回复:传的Gitee啊,链接:https://gitee.com/lmos/Geek-time-computer-foundation,觉得不错star支持下哦~

    
    
  • LockedX
    2022-08-16 来自湖北
    wire [31:0] Iimm = {{21{instr[31]}}, instr[30:20]}; wire [31:0] Simm = {{21{instr[31]}}, instr[30:25], instr[11:7]}; wire [31:0] Bimm = {{20{instr[31]}}, instr[7], instr[30:25], instr[11:8], 1'b0}; wire [31:0] Uimm = {instr[31:12], 12'b0}; wire [31:0] Jimm = {{12{instr[31]}}, instr[19:12], instr[20], instr[30:21], 1'b0}; 老师,这个立即数的截取一直没看懂,{21{instr[31]}}的含义是什么呢

    作者回复: 指令中含有立即数 数据

    共 3 条评论
    
  • 你要有个信念
    2022-08-14 来自湖北
    请问为什么要把立即数扩成32位的呢?

    作者回复: 32位 运算啊

    共 2 条评论
    
  • 伊宝峰
    2022-08-13 来自湖北
    立即数不连续是为了让不同指令源和目的寄存器位置固定,方便寄存器地址的译码。

    作者回复: 对

    
    
  • 苏流郁宓
    2022-08-10 来自湖北
    B型是有条件跳转指令,J型是无条件跳转指令。俺的理解是既然是跳转指令,允许不连续的 S型是和内存交流,俺的理解是可以为指令,也可以部分为数据,没有严格的要求导致可以允许不连续的!

    作者回复: 你理解正确

    
    