0

これがテストベンチです

`timescale 1 ps/ 1 ps

module sum_fix_vlg_tst();

reg select;
reg [7:-8] valor_a;
reg [7:-8] valor_b;


// wires                                               
wire [8:-8]  result_fx;

sum_fix i1 (

.result_fx(result_fx),
.select(select),
.valor_a(valor_a),
.valor_b(valor_b)
 );

initial                                                
$monitor ("valor_a = %b, valor_b = %b, result_fx = %b", valor_a, 
valor_b,result_fx);

initial
begin                                                  
#10
select = 1;
valor_a = 32'b0000000011111111;
valor_b = 32'b0000000011111111;

#20

valor_a = 32'b1111111111111111;
valor_b = 32'b1111111111111111;

#30

valor_a = 32'b1001100111001000;
valor_b = 32'b0001111000111101;

end                                                    

endmodule

そしてこれがウット

`timescale 1 ps/ 1 ps
module sum_fix (valor_a,valor_b,result_fx,select);

input [7:-8] valor_a,valor_b;
output reg [8:-8] result_fx;
input select;


always@ (valor_a or valor_b)
begin 
if (select==1)
result_fx = valor_a + valor_b;
else    
result_fx = valor_a - valor_b;
end

endmodule

Quartus でうまくコンパイルされました。次に、Modelsim を次のように起動します: [ツール] > [RTL シミュレーション] 。Modelsim を起動しますが、入力にzzzzzzzzzzzzzが多く、出力にxxxxxxxxxxxxxxしか出力されず、波形には何も表示されません。

このテストベンチをプロジェクトに正しく追加したかどうかはわかりません。私は初心者です。私がしたことは: Assignments > Settings > Compile Test: Test Benches > newをクリックし、ファイルを探して追加し、OK です。複雑すぎるため、これが正しい方法かどうかはわかりません。これについて助けてください。

また、Quartus でテスト ベンチ ライター テンプレートを開始したことをコメントしますが、ファイルからすべてを変更して終了しました。最終結果は上記のコードです。

4

1 に答える 1