реклама на сайте
подробности

 
 
> Serial to parallel, добаление функциональности
superpriz
сообщение Mar 31 2011, 19:53
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 28-01-11
Пользователь №: 62 540



Здравствуйте, у меня следующая проблема. Нужно преобразовать последовательный поток в параллельный. Вот сделал набросок кода, то что сразу в голову пришло.
Код
module serial_2_parallel (clock, reset, serial_data_inp, parallel_data_out);

input wire clock, reset, serial_data_inp;
output wire [3:0] parallel_data_out;

reg [3:0] parallel_data;
reg [1:0] count;

assign parallel_data_out = (count == 'b00) ? parallel_data : parallel_data_out;

always @(posedge clock or negedge reset) begin
if(reset)
begin
  count <= 'b00;
  parallel_data <= 'd0;
end
else
  begin
    count <= count + 'd1;
    parallel_data <= {serial_data_inp, parallel_data[3:1]};
  end
end
endmodule


Вот только в туже голову не приходит как добавить в эту схему следующий функционал.
К источнику последовательных данных прилагается сигнал ser_valid, который определяет какой бит можно считывать, а какой нет.
Теперь мне нужно накопить 4 "правильных" бита и выдать их на параллельную шину, указав при этом, что выходные данные готовы - сигнал par_valid.
Причем сигнал par_valid должен длиться 1 такт не зависимо от того приходят на вход новые данные или нет. Помогите кто чем может.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
superpriz
сообщение Apr 1 2011, 07:37
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 28-01-11
Пользователь №: 62 540



barabek, спасибо большое, результат прямо в точку. Скажите, а это решение вы сами придумали или вычитали в литературе? Если не затруднит, подскажите парочку источников с такими приемами. Я начинающий, изучаю verilog, но в той литературе, что мне попадается описано как сделать счетчик, мультиплексор, тригер и тд, а вот про такие хитрости нигде не сказано.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 03:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.04728 секунд с 7
ELECTRONIX ©2004-2016