在verilog中读取数据

在verilog中读取数据,verilog,bit-shift,bits,Verilog,Bit Shift,Bits,问题:我试图在Verilog中操作16位二进制数。我得到的结果似乎与预期结果不符。我已经隔离了这个问题,因为testbench.v似乎向我的classify.v文件发送了错误的值 这就是我的testbench.v文件的样子 module testbench3(); reg clk, reset; // clock and reset are internal reg [0:15] data_row; wire [0:1] actual_class; reg EN; reg [0:15] mem

问题:我试图在Verilog中操作16位二进制数。我得到的结果似乎与预期结果不符。我已经隔离了这个问题,因为testbench.v似乎向我的classify.v文件发送了错误的值

这就是我的testbench.v文件的样子

module testbench3();

reg clk, reset; // clock and reset are internal
reg [0:15] data_row;
wire [0:1] actual_class;
reg EN;
reg [0:15] memory [0:2]; //HERE
integer i;

classify dut(.actual_class(actual_class), .data_row(data_row), .EN(EN));

// Set up the system clk
always begin
    #5 clk <= !clk;
end

initial begin     // ASSIGN 16 bit to memory
  memory[0] <= 0001111111000000;
  memory[1] <= 0010111111000000;
  memory[2] <= 0010111111000000;

end

initial begin
    clk <= 0;

    EN <= 0;
    i <= 0;
    reset <= 0; 
    #27; 
    reset <= 1;
end

always @(posedge clk) begin 
    data_row <= memory[i];
    i <= i + 1;
    $display ("%b", data_row); // HERE
    if(i == 3) begin
        $display("End simulation");
        $finish;
    end
  EN = 1;
end
模块testbench3();
reg clk,重置;//时钟和复位是内部的
reg[0:15]数据_行;
导线[0:1]实际_等级;
雷根;
reg[0:15]内存[0:2]//在这里
整数i;
对dut进行分类(.actual_class(actual_class),.data_row(data_row),.EN(EN));
//设置系统时钟
总是开始

#5 clk当您初始化内存时,您使用的是十进制值,而不是二进制值。 将16'b添加到前面:

memory[0] <= 16'b0001111111000000;
memory[1] <= 16'b0010111111000000;
memory[2] <= 16'b0010111111000000;
内存[0]