Таким образом, нам предоставили последовательный модуль в Verilog и поставили задачу создать тестовую среду, чтобы показать разницу между неблокирующими и блокирующими назначениями.
Предоставленный код:
module sequential_module (A, B, C, D, clk);
input clk;
output A, B, C, D;
reg A, B, C, D;
always @(posedge clk)
begin
A = B;
B = A;
end
always @(posedge clk)
begin
C <= D;
D <= C;
end
endmodule
Кажется, я не могу подключить какие-либо значения к какой-либо из переменных (A, B, C, D) в тестовой среде, потому что я получаю недопустимый вывод или ошибку подключения порта inout.
Тестовый стенд, который мне удалось создать:
module testbench_sequential;
reg clk;
wire A, B, C, D;
sequential_module test(A, B, C, D, clk);
always
#5 clk = ~clk;
initial
begin
clk = 1'b0;
$display ("Simulating output for Activity 3a");
$monitor ($time,,, "clk = %b A = %b B = %b C = %b D = %b ", clk, A, B, C, D);
#25 $finish;
end
endmodule
Единственный вывод, который я получаю от тестового стенда, приведенного выше, - это то, что часы, кажется, работают, но у других переменных есть значения Don't care (1'bx). Я как бы новичок в использовании этого приложения, и любая помощь будет принята с благодарностью.