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

 
 
> Проблема: multiple driver
Veg@
сообщение Jul 27 2010, 11:05
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 90
Регистрация: 16-09-09
Пользователь №: 52 416



Возможно глупый вопрос: в Verilog-коде при создании нескольких блоков always нельзя присваивать значения регистру более чем в одном блоке. Например:
Код
reg a;

always @(posedge clk1)
  a = 1;
always @(posedge clk2)
  a = 2;

Можно ли выполнить эту задачу каким-либо другим образом?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Veg@
сообщение Jul 30 2010, 15:51
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 90
Регистрация: 16-09-09
Пользователь №: 52 416



Цитата
Используйте fifo

В смысле в одном блоке толкать данные в очередь, а в другом извлекать? Не могли бы Вы привести конкретный пример для пояснения?
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Aug 2 2010, 10:48
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(Veg@ @ Jul 30 2010, 19:51) *
В смысле в одном блоке толкать данные в очередь, а в другом извлекать? Не могли бы Вы привести конкретный пример для пояснения?

Код
reg [1:0] wraddr,rdaddr;
reg [3:0] data_fifo [0:1];

always @(posedge clk_0)
if (rst) wraddr<=2'd0;
else wraddr<=wraddr+1;

always @(posedge clk_1)
if (rst) rdaddr<=2'd2;
else rdaddr<=rdaddr+1;

always @(posedge clk_0)
case (wraddr)
2'd0:begin
data_fifo[0]<=input_data;
data_fifo[1]<=data_fifo[0];
data_fifo[2]<=data_fifo[1];
data_fifo[3]<=data_fifo[2];
end
2'd1:......................
default: begin .....................
dada_fifo[3]<=input_data;
end
endcase

wire [3:0] output_data=dada_fifo[rdaddr];

Как-то так...
есть 4 элемента по 4 разряда, адрес записи также как и данные меняются на частоте clk_0, адрес чтения на частоте clk_1 и выходные данные на частоте clk_1. Естественно это просто пример, можно тут накрутить переполнение, опустошение, реализовать все на памяти и т.д. Факт в том, что данные записываются в регистр на одной частоте, а считываются на другой.
Я просто пытаюсь понять, что Вам требуется - пересинхронизация или буфер какой?
Go to the top of the page
 
+Quote Post



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

 


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


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