Verilog 意外波形出现,正在设计CPU
我试图设计CPU和SRAM之间的读写周期。 初始内存值为mem(0)=000f,mem(1)=000e。 我想设计的5个周期 周期1:分配addr=0 循环2:从SRAM、mem(0)->IR读取值 周期3:分配addr=1 循环4:在SRAM、IR->mem中写入值(1) 循环5:从SRAM、mem(1)->DR读取值Verilog 意外波形出现,正在设计CPU,verilog,xilinx,Verilog,Xilinx,我试图设计CPU和SRAM之间的读写周期。 初始内存值为mem(0)=000f,mem(1)=000e。 我想设计的5个周期 周期1:分配addr=0 循环2:从SRAM、mem(0)->IR读取值 周期3:分配addr=1 循环4:在SRAM、IR->mem中写入值(1) 循环5:从SRAM、mem(1)->DR读取值 模块sram(地址、时钟、din、dout、we)//sram.v 参数addr_width=12,word_depth=4096,word_width=16; 输入时钟,我们
模块sram(地址、时钟、din、dout、we)//sram.v
参数addr_width=12,word_depth=4096,word_width=16;
输入时钟,我们;
输入[addr_width-1:0]addr;
输入[word_width-1:0]din;
输出[word_width-1:0]dout;
reg[word_width-1:0]mem[0:word_depth-1];
reg[word_width-1:0]dout;
始终@(posedge clk)开始
如果(!我们)
mem[addr]在always块的底部,您有一个if
而没有begin
/end
:
if(select==3'b101) //cycle5, read
we <= 1; dr[15:0] <= dout[15:0];
if(select==3'b101)//循环5,读取
我们在always块的底部,您有一个if
而没有begin
/end
:
if(select==3'b101) //cycle5, read
we <= 1; dr[15:0] <= dout[15:0];
if(select==3'b101)//循环5,读取
我们在你的代码中你有ir[15:0]在你的代码中你有ir[15:0]