45
社区成员
发帖
与我相关
我的任务
分享写了一个通过输入地址查找ROM核中的数据,但是地址正常遍历(仿真过)数据却出不来,非常的疑惑,希望有高人帮忙指点一下代码哪里有问题
module nco(
input sys_clk,
input sys_rst_n,
output [7:0] data
);
//parameter
//频率调节控制
parameter FREQUENT = 10000000; //频率调节,FREQUENT的越大,最终输出的频率越低,范围0~511
//reg define
reg [31:0] freq_cnt ; //频率调节计数器
reg [7:0] address ;
wire [7:0] rd_data ;
//*****************************************************
//** main code
//*****************************************************
assign data = rd_data ;
//频率调节计数器
always @(posedge sys_clk or negedge sys_rst_n) begin
if(sys_rst_n == 1'b0)
freq_cnt <= 8'd0;
else if(freq_cnt == FREQUENT)
freq_cnt <= 8'd0;
else
freq_cnt <= freq_cnt + 8'd1;
end
//读ROM地址
always @(posedge sys_clk or negedge sys_rst_n) begin
if(sys_rst_n == 1'b0)
address <= 8'd0;
else begin
if(freq_cnt == FREQUENT) begin
address <= address + 8'd1;
end
end
end
//ROM存储波形
pll_rom u_rom_256x8b(
.address (address),
.clock (sys_clk),
.q (rd_data)
);
endmodule