내 설계 코드 블록 및 testbench 컴파일,하지만 내가 올바른 출력을 얻지 못한다면 시뮬레이션 할 때. 아무도 내 코드에서 내가 잘못 될 수 있다고 말할 수 있습니까? 여기 Verilog에서 시뮬레이션 오류
는 테스트 벤치 코드입니다 :module testbench;
reg [511:0]FROM_LS;
reg CLK;
reg [63:0]TO_IF_ID;
initial
begin
CLK= 0;
TO_IF_ID[63:0]=63'b0;
FROM_LS[511:480]= 32'b00011_00000_00100_01100_11100_10111_01;
FROM_LS[479:448]=32'b00_11000_00100_01111_11111_00011_10000;
end
always
begin
#10 CLK= ~ CLK;
//FROM_LS[511:448]= ~ FROM_LS[511:448];
$display("FROM_LS= %b", FROM_LS);
$display("TO_IF_ID= %b", TO_IF_ID);
end
endmodule
을 여기에 디자인 블록에 대한 코드입니다
module inst_line_buffer(input wire [511:0]from_LS,
input wire clk,
output reg [63:0]to_if_id);
parameter mem_size=16;
integer k;
reg [31:0] ilb[0:mem_size-1];
initial
begin
for (k = 0; k < mem_size ; k = k + 1)
begin
ilb[k] = 32'b00;
//$display ("ilb= %b",ilb[k]);
end
end
always @(posedge clk)
begin
ilb[0]= from_LS[511:480];
ilb[1]= from_LS[479:448];
ilb[2]= from_LS[447:416];
ilb[3]= from_LS[415:384];
ilb[4]= from_LS[383:352];
ilb[5]= from_LS[351:320];
ilb[6]= from_LS[319:288];
ilb[7]= from_LS[287:256];
ilb[8]= from_LS[255:224];
ilb[9]= from_LS[223:192];
ilb[10]= from_LS[191:160];
ilb[11]= from_LS[159:128];
ilb[12]= from_LS[127:96];
ilb[13]= from_LS[95:64];
ilb[14]= from_LS[63:32];
ilb[15]= from_LS[31:00];
to_if_id [63:32]= ilb[0];
to_if_id [31:0]= ilb[1];
$display("ilb= %b", ilb[1]);
end
endmodule
내가 TO_IF_ID의 값이 0001100000001000110011100101110100110000010001111111110001110000 될하지만 난 것을 기대 해요; 모두 0 이군. 누구든지 나를 도울 수 있습니까?
제공된 코드에서 inst_line_buffer는 인스턴스화되지 않습니다. – Andy
@andy : 위 코드에서 inst_line_buffer를 다음과 같이 인스턴스화했습니다. inst_line_buffer ilb (FROM_LS, CLK, TO_IF_ID); 오류가 발생했습니다 : 오류 : (vsim-3053) C : /Modeltech_pe_edu_10.0a/examples/tstbnch.v (5) : 잘못된 출력 또는 입력 포트 "포트 'to_if_id'에 대한 연결. # Region :/testbench/ilb # 디자인을로드하는 중 오류가 발생했습니다. – kinirashmi
은 내 답변에서 한 것처럼 인스턴스화하고 reg/wire에 대한 내 의견에주의를 기울이십시오. – toolic