白沐沐vccc 2022-11-30 19:46 采纳率: 96.2%
浏览 11
已结题

cpu中向内存取数问题



   im_4k U_IM ( 
      .addr(PC[7:0]) , .Dout(im_dout)
   );


`timescale 1ns / 1ps
module im_4k( addr, Dout );
    
    input [7:0] addr;
    output [31:0] Dout;
    reg [7:0] imem[1023:0];
    wire [9:0]addr00;
    assign addr00={addr,2'b00};//10位
    
    assign Dout[31:24] = imem[addr00];
    assign Dout[23:16] = imem[addr00+1];
    assign Dout[15:8]  = imem[addr00+2];
    assign Dout[7:0]   = imem[addr00+3];
    
endmodule 

请问向内存中取数,为什么只需要PC的后8位(这里是按字为单位,最后2个0已去),assign Dout[31:24] = imem[addr00];这个是什么意思呢?万分感谢

  • 写回答

1条回答 默认 最新

  • 老皮芽子 2022-11-30 21:00
    关注

    没看明白你想要问什么问题
    这只是一段 verilog 读内存的一段代码
    看这段代码,是个 32 位的内存接口,但是代码是用 7 位存储器实现的 32 位读操作,代码看着有些别扭。
    这几行代码其实就是内存大字节序(BIG-ENDIAN)
    assign Dout[31:24] = imem[addr00];
    assign Dout[23:16] = imem[addr00+1];
    assign Dout[15:8] = imem[addr00+2];
    assign Dout[7:0] = imem[addr00+3];

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月9日
  • 已采纳回答 12月2日
  • 创建了问题 11月30日

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100