首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ROM读取数据

从ROM读取数据
EN

Stack Overflow用户
提问于 2021-03-26 10:38:01
回答 1查看 384关注 0票数 1

我想在每个时钟周期从ROM读取数据。我有ROM的程序如下

代码语言:javascript
复制
`timescale 1ns / 1ps 
module ROM (clk,rd,addr,data);

input wire  [5:0]addr;
output reg[1:0] data;
reg[1:0] rom [0:39];
input wire rd,clk;

 initial begin 

$readmemb ("own1.mem",rom);

end
always @(posedge clk) begin
data <=  rom[addr];
end
endmodule

addr不递增,因此每次需要读取一个数据。我该怎么做?我已经附上了仿真结果。

时钟处理可以修改为

代码语言:javascript
复制
always @(posedge clk)
count =addr;
assign count_next =count +1;
counter <=count_next;
data <= rom[counter];

这个有用吗??在每个时钟边缘增加地址和访问数据?

Testbench

代码语言:javascript
复制
module tb_ROM;

    // Inputs
    reg clk;
    reg rd;
    reg [5:0] addr;
    wire [5:0] temp,counter;
    // Outputs
    wire [1:0] data;

    // Instantiate the Unit Under Test (UUT)
    ROM uut (
        .clk(clk), 
        .rd(rd), 
        .addr(addr), 
        .data(data)
    );

    initial begin
        // Initialize Inputs
        clk = 1;
        rd = 1;
    
      addr=0;
        // Wait 100 ns for global reset to finish
    
        // Add stimulus here

    end
     always #5 clk=~clk; 
      
endmodule

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-26 11:53:55

在testbench中,可以添加另一个always块来增加地址:

代码语言:javascript
复制
always @(posedge clk) addr <= addr + 1;

或者,可以将其添加到设计模块中,如果这是目标的话。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66815273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档