module tb_alu32();
reg clk, reset;
reg [31:0] tb_a, tb_b, tb_yexpected;
reg [2:0] tb_op;
wire [31:0] tb_result;
reg[31:0] vectornum, errors;
reg[99:0] testvectors[10000:0];
...
always
begin
clk=0;#5;clk=1;#5;
end
$readmemh("C:/altera/13.0/practice/week3/alu32/testvect.tv",testvectors);
always @ (posedge clk)
begin
#1; {tb_a,tb_b,tb_op,tb_yexpected} = testvectors[vectornum];
end endmodule
readmemh는
내가 testvect.tv하지만 tb_a 및 tb_b의 MSB가 누락 나는이 문제를 어떻게 해결할 수 0
0000_0001->0000_0002
0000_0002->0000_0004
FFFF_FFFF->FFFF_FFFE
FFFF_FFFE->FFFF_FFFC
8000_0001->0000_0002
처럼 LSB가 설정을 읽을 잘못된 값을 읽어? readmemb을 사용하면 잘 작동합니다.
값을 할당하면 잘 작동합니다.
왜 발생 했습니까?
코드를 실행하지 않지만 readmemh 이후에는 1 비트 왼쪽 쉬프트가 있습니다. –
Verilog에서 readmemh를 사용할 때 [값이 이동 될 수 있습니다] (https://stackoverflow.com/questions/46264646/value-is-shifted-when-is-readmemh-in-verilog) – Greg
그건 내 질문입니다. . –