【verilog每日一练】reg型存储器应用(二维数组) - FPGA开发者技术社区 - 电子技术william hill官网 - 广受欢迎的专业电子william hill官网 - 威廉希尔官方网站
分享 收藏 返回

Mill 关注 私信
[问答]

【verilog每日一练】reg型存储器应用(二维数组)

用verilog将变量ram_in的数值赋值给ram的arraysize为1的单元

image.png

回帖(3)

卿小小_9e6

2023-8-23 15:27:06
  1. ram[1] <= ram_in ;

笑尽往事

2023-8-24 09:27:03
  1. module top_module (  
  2.     input wire clk,  
  3.     input wire reset,  
  4.     input wire [7:0] ram_in,  
  5.     output reg [7:0] ram [0:255] // 假设你的RAM有256个8位单元  
  6. );  
  7.   
  8. always @(posedge clk or posedge reset) begin  
  9.     if (reset) begin  
  10.         // 复位所有RAM单元  
  11.         for (int i = 0; i < 256; i++) begin  
  12.             ram[i] <= 8'b0;  
  13.         end  
  14.     end else begin  
  15.         // 将ram_in的值赋给RAM的第一个单元(索引为0)  
  16.         ram[0] <= ram_in;  
  17.     end  
  18. end  
  19.   
  20. endmodule
在Verilog中,你可以使用索引来访问RAM的特定单元,并将ram_in的数值赋给该单元。

在这个例子中,当reset信号为高时,所有的RAM单元将被复位为0。在每个时钟上升沿(假设clk为系统时钟),如果reset信号为低,那么ram[0]将被设置为ram_in的值。

Mill

2023-8-24 18:24:03


解析:arraysize表示深度,此处ram也可理解为32个位宽为8的变量。

更多回帖

×
发帖