2014-12-04 4 views
-2

Я пишу Verilog код для алгоритма, но у меня проблема с одним модулем, который получает, например: 10 двоичных чисел (по 4 бита для каждого) из предыдущего модуля (1 вход на каждом положительный край clk), поэтому существует 10 тактов, чтобы иметь 10 двоичных чисел.Код Verilog для подсчета числа Повторение

Как подсчитать количество повторений каждого номера и сохранить частоту для каждого номера для последующего использования другим модулем с использованием verilog hardawre language? например: в конце этот модуль находит 0000 дважды, 0001 один раз, ...., 1111 ноль. в 10 тактов.

Заранее спасибо ...

+0

Как вы ожидаете получить выход? –

+0

Я пробовал «генераторные счетчики для каждого», но это не сработало. Я приведу пример выше, но моя работа зависит от случайных чисел, генерируемых на каждом положительном ребре clk, тогда я хочу подсчитать, сколько чисел в диапазоне [00001111] появляется в течение 10 clk циклов. – Sereena

+0

Простейший способ, я вижу, объявляет массив из 16 элементов, которые будут служить счетчиками и увеличивать их каждый раз, когда число, соответствующее индексу счетчика, происходит. Но еще раз, какой формат вывода вы хотите получить? –

ответ

0

Если предположить, что у вас есть часы и активный низкий сброс:

module tracker(
    input clk, 
    input rst_n, 
    input [3:0] data_rx 
); 

reg [7:0] count [0:15]; 
integer i; 

always @(posedge clk, negedge rst_n) begin 
    if (~rst_n) begin 
    for(i=0; i<16, i=i+1) begin 
     count[i] <= 8'b0; 
    end 
    end 
    else begin 
    count[data_rx] <= count[data_rx] + 1; 
    end 
end 
endmodule 

Для ПЛИС по умолчанию начальный блок может быть использован вместо сигнала сброса, который может выглядеть :

initial begin 
    for(i=0; i<16, i=i+1) begin 
    count[i] <= 8'b0; 
    end 
end 

always @(posedge clk) begin 
    count[data_rx] <= count[data_rx] + 1; 
end 

Обратите внимание, что для цикла было использован в асинхронном сбросе и начальном, Это может быть статический раскатало, нет цели динамической так полностью не синтезируемая.

Смежные вопросы