Verilog 意外波形出现,正在设计CPU

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; 输入时钟,我们

我试图设计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;
输入时钟,我们;
输入[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]