#verilog #fpga
#верилог #плис
Вопрос:
Я моделирую 4 — битный регистр с включением и асинхронным сбросом. Регистр имеет три однобитовых входа, а именно clk, reset и enable, один четырехбитовый вход, D и один четырехбитовый выход Q с использованием verilog. Вот мой дизайн и тестовый стенд. Дизайн
module fourbitreg(D,clk,reset,enable, Q);
input[3:0] D; // Data input
input clk,reset,enable;
output[3:0] Q; // output Q
reg[3:0] Q;
always @(posedge clk or posedge reset)
begin
if(reset)
Q <= 4’b0;
else if (enable)
Q <= D;
end
endmodule
Испытательный стенд
module four_bitreg_tb;
reg [3:0] D;
reg clk,reset,enable;
wire[3:0]Q;
always #5 clk = ~clk;
fourbitreg uut(.D(D),.clk(clk),.reset(reset),.enable(enable),.Q(Q));
initial begin
$monitor("time=",$time,"D=%b reset =%d enable =%d Q=%b",D,reset,enable,Q);
$dumpfile("dump.vcd");
$dumpvars;
reset <= 0;
enable <= 0;
D <= 4'b0000;
#5
D <= 4'b0001;
reset <= 0;
enable <= 1;
#5
D <= 4'b0010;
reset <= 1;
enable <= 0;
#5
D <= 4'b0011;
reset <= 1;
enable <=1;
#5
D <= 4'b0100;
reset <= 0;
enable <= 0;
#5
D <= 4'b0101;
reset <= 0;
enable <= 1;
#5
D <= 4'b0110;
reset <= 1;
enable <= 0;
#5
D <= 4'b0111;
reset <= 1;
enable <= 1;
#5
D <= 4'b1000;
reset <= 0;
enable <= 0;
#5
D <= 4'b1001;
reset <= 0;
enable <= 1;
#5
D <= 4'b1010;
reset <= 1;
enable <= 0;
#5
D <= 4'b1011;
reset <= 1;
enable <= 1;
#5
D <= 4'b1100;
reset <= 0;
enable <= 0;
#5
D <= 4'b1101;
reset <= 0;
enable <= 1;
#5
D <= 4'b1110;
reset <= 1;
enable <= 0;
#5
D <= 4'b1111;
reset <= 1;
enable <= 1;
#20 $finish;
end
endmodule
При компиляции кода я получаю следующие ошибки.
4bitreg.v:9: syntax error
I give up.
Я не обнаружил никаких проблем с кодом.
Ответ №1:
Q <= 4’b0;
в строке 9 должно быть изменено как Q <= 4'b0;
.