Волновые формы Verilog

Мне нужно построить сигнал из следующего кода:

module HW7P1 (A1, A0, B1, B0, O);
        input A1, A0, B1, B0;
        output O;
        assign O = (!A1 & B1) | (!A1 & !A0 & B0) | (!A0 & B1 & B0);
endmodule

module counter (clr, clk, OC);
        input clr, clk;
        output reg [3:0] OC;

        initial begin
                OC = 0;
        end

        always @(posedge clk) begin
                if (clr == 0)
                        OC = 0;
                else
                        OC = OC + 1;
        end
endmodule

module test_bench ();

wire HW7P1A1, HW7P1A0, HW7P1B1, HW7P1B0, HW7P1O;
wire clr, clk;
wire [3:0] counterO;
reg osc;


initial begin
osc = 0;
end

always begin
#10 osc = ~osc;
end


assign clr=1;
assign clk=osc;
counter C1(clr, clk, counterO);

assign HW7P1A1 = counterO[3];
assign HW7P1A0 = counterO[2];
assign HW7P1B1 = counterO[1];
assign HW7P1B0 = counterO[0];

HW7P1 P1(HW7P1A1, HW7P1A0, HW7P1B1, HW7P1B0, HW7P1O);

endmodule

Я хотел бы использовать для этого игровую площадку EDA, так как на моем компьютере не установлено программное обеспечение для моделирования Verilog. Однако, когда я выбираю опцию «открыть EPWave после запуска», ничего не происходит после того, как я нажимаю «Выполнить». Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно?


person Victor Brunell    schedule 26.03.2014    source источник


Ответы (1)


Во-первых, вам нужно завершить симуляцию, иначе сим будет работать вечно, и в конечном итоге процесс будет убит. Вы можете сделать это, добавив вызов $finish:

#10000 $finish

Во-вторых, вам нужно создать VCD. После того, как вы добавите приведенный выше код, EDAPlayground выдаст вам полезное сообщение об ошибке:

Файл *.vcd не найден. EPWave не открывается. Вы использовали '$dumpfile("dump.vcd"); $дампварс;'?

Итак, добавив следующий код:

initial begin
  $dumpfile("dump.vcd");
  $dumpvars;
  #10000 $finish;
end

Код вашего примера запускается и доступен для просмотра в средстве просмотра сигналов: http://www.edaplayground.com/x/3v2

person Chiggs    schedule 26.03.2014
comment
Большое спасибо! Хотя я не очень понимаю решения. Есть ли хорошие учебники для начинающих, на которые вы можете мне указать? Кроме того, почему весь код размещен в разделе дизайна, а в разделе тестового стенда ничего нет? - person Victor Brunell; 26.03.2014
comment
@Caulibrot Они все были в одном разделе, потому что я просто был ленив и скопировал ваш код в окно. Я обновил игровую площадку, чтобы разделить ее. Я не знаю ни одного особенно хорошего учебника, все они кажутся мне очень похожими! - person Chiggs; 27.03.2014
comment
Спасибо, Чиггс. Это было большой помощью. - person Victor Brunell; 27.03.2014