создание прямоугольного сигнала 12 Гц Тактовый сигнал 50 МГц - PullRequest
0 голосов
/ 25 мая 2020

Я написал код на Verilog, который должен создавать квадратный сигнал 12 Гц при тактовом сигнале 50 МГц. Это правильно?

module w_m(clk, cnt); 
input clk; 
output [21:0] cnt; 
reg [21:0] cnt = 0; 
always @(posedge clk) 
cnt = cnt + 1; 
endmodule
module w_tf;

    reg clk; 

    wire [21:0] cnt; 

    w_m uut 
    ( 
    .clk(clk),
    .cnt(cnt) 
    ); 
    initial begin 
    // Initialize Inputs 
    clk = 0; 
    forever begin 
    #10 
    clk = !clk; 
    end 
    end
    endmodule

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

Лог c прав. Однако есть неточности. Я изменил размер регистра, чтобы запустить симуляцию, как разрешено EDA игровая площадка.

DUT:

module w_m(clk, clk_out); 
input clk; 
//output [21:0] cnt; 
  output clk_out;
  reg [11:0] cnt = 0; // make 11 to 21
always @(posedge clk) 
    cnt = cnt + 1; 

  assign clk_out = cnt[11];

endmodule

Кроме того, тестовой системе требуется $ fini sh, чтобы остановить бесконечное выполнение блока forever, занимающего дисковое пространство. Добавлен параллельный путь для запуска симулятора и выхода через 10000 нс. Вы можете изменить это по своему усмотрению. ТБ:

module w_tf;

    reg clk; 

    wire  cnt; 

    w_m uut 
    ( 
    .clk(clk),
    .clk_out(cnt) 
    ); 

    initial begin 

    // Initialize Inputs 
    clk = 0; 
      fork
        begin    
          forever begin 
            #10     clk = !clk; end
        end
        begin
          #10000000 $finish; // increase this number as per the simulation requirement
        end
      join

    end
endmodule
0 голосов
/ 25 мая 2020

Да, он правильно моделирует, как описано, при условии, что шкала времени установлена ​​на 1 нс.

Период clk составляет 20 нс, а его частота составляет 50 МГц.

MSB cnt (cnt[21]) имеет частоту примерно 12 Гц (11,921 Гц, согласно моему Результаты моделирования).

Вы можете проверить это, запустив моделирование и посмотрев на формы сигналов. Вы можете разместить свой код, например, на edaplayground .

...