Methane 0 14 декабря, 2010 Опубликовано 14 декабря, 2010 · Жалоба Итак. Есть система в ней куча регистров. (конфигурация ПДП, статусы, таймеры и прочая фигня). Все эти регистры висят на одной шине описанной через interface. interface regs_if(input clk, input rstn); logic [63:0] tx_data; logic [63:0] rx_data; logic [19:0] tx_addr; logic [19:0] rx_addr; logic wr; logic [7:0] be; endinterface Дальше если мне нужен регистр какой-то я пишу module artem_regrw_m #( parameter ADDR )( output reg [63:0] data, output [7:0] be_wr, regs_if regs ); …. endmodule; Тоесть задаю адрес итд. Дальше. Мне понадобилось добавить в RO регистр, сигнал ready. Тоесть если по шине идет запрос на чтение, то любой из модулей висящей на шине regs_if может поднять какой-то сигнал, и задержать чтение. Это первое. Второе. У меня объединение кучи выходов сденало через assign regs.tx_data = (ADDR[19:3] == regs.tx_addr[19:3])?data:{64{1'bz}}; Мне это не нравится. Во первых на это ругается квартус. Warning: Tri-state node(s) do not directly drive top-level pin(s). во вторых я хочу при промахе (ADDR[19:3] != regs.tx_addr[19:3] во всех модулях) чтобы читалось {32'BADADDR0,regs.tx_addr}. Сейчас все единицы читаются. У меня есть ощущения что это можно решить или через описание шины какое-то нормальное. Или через функции в интерфейсе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 14 декабря, 2010 Опубликовано 14 декабря, 2010 · Жалоба wor не поможет? Если конечно синтезатор его сможет переварить :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 14 декабря, 2010 Опубликовано 14 декабря, 2010 · Жалоба wor не поможет? Если конечно синтезатор его сможет переварить :( Направление поиска понял. Спасибо. wor кажется не пашет. tri0 тоже. :( Объявил как wor. Пишет что cannot be assigned more than one value. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 14 декабря, 2010 Опубликовано 14 декабря, 2010 · Жалоба Объявил как wor. Пишет что cannot be assigned more than one value.Увы :crying: А если другой синтезатор попробовать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 14 декабря, 2010 Опубликовано 14 декабря, 2010 · Жалоба Увы :crying: А если другой синтезатор попробовать? http://quartushelp.altera.com/10.1/master.....oss=WOR%20WAND Wired Nets (wor, wand,trior, and triand Nets) Supported Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vitan 2 14 декабря, 2010 Опубликовано 14 декабря, 2010 · Жалоба На опенкоресах есть такой wb_builder, он генерит интерконнект автоматически. В квартусе, вроде SOPC Builder это должен делать. Не хотите поработать на подобных принципах? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 14 декабря, 2010 Опубликовано 14 декабря, 2010 · Жалоба На опенкоресах есть такой wb_builder, он генерит интерконнект автоматически. В квартусе, вроде SOPC Builder это должен делать. Не хотите поработать на подобных принципах? Я не понял что это. Предпроцессор? Типа "сигналов" в QT? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vitan 2 14 декабря, 2010 Опубликовано 14 декабря, 2010 · Жалоба Я не понял что это. На входе текстовое описание блоков и адресов, им назначенных (правит человек). На выходе VHDL, реализующий интерконнект между блоками (есть несколько видов интерконнекта). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 14 декабря, 2010 Опубликовано 14 декабря, 2010 · Жалоба На входе текстовое описание блоков и адресов, им назначенных (правит человек). На выходе VHDL, реализующий интерконнект между блоками (есть несколько видов интерконнекта). Завтра гляну. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexRayne 7 16 декабря, 2010 Опубликовано 16 декабря, 2010 · Жалоба Итак. Есть система в ней куча регистров. (конфигурация ПДП, статусы, таймеры и прочая фигня). Все эти регистры висят на одной шине описанной через interface. interface regs_if(input clk, input rstn); logic [63:0] tx_data; logic [63:0] rx_data; logic [19:0] tx_addr; logic [19:0] rx_addr; logic wr; logic [7:0] be; endinterface Второе. У меня объединение кучи выходов сденало через assign regs.tx_data = (ADDR[19:3] == regs.tx_addr[19:3])?data:{64{1'bz}}; Мне это не нравится. Во первых на это ругается квартус. Warning: Tri-state node(s) do not directly drive top-level pin(s). КВА не может реализовывать tri-state дувнаправленые шины logic ом. должно использовать wire или wor и .т.п. а у вас в интерфейсе логик, потому и не реализуется ничего. наверное это потому что логик, согласно стандарту, иначе ведет себя при присваивании чем wire. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 16 декабря, 2010 Опубликовано 16 декабря, 2010 · Жалоба КВА не может реализовывать tri-state дувнаправленые шины logic ом. должно использовать wire или wor и .т.п. а у вас в интерфейсе логик, потому и не реализуется ничего. наверное это потому что логик, согласно стандарту, иначе ведет себя при присваивании чем wire. wire, reg и logic в квартусе одно и тоже. А wor не пашет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 16 декабря, 2010 Опубликовано 16 декабря, 2010 · Жалоба wire, reg и logic в квартусе одно и тоже. А wor не пашет. посмотрите эту тему http://electronix.ru/forum/index.php?showtopic=79285 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 16 декабря, 2010 Опубликовано 16 декабря, 2010 · Жалоба посмотрите эту тему http://electronix.ru/forum/index.php?showtopic=79285 У меня похоже тоже чамое что и у des00. В общем баг квартуса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexRayne 7 16 декабря, 2010 Опубликовано 16 декабря, 2010 · Жалоба wire, reg и logic в квартусе одно и тоже. А wor не пашет. вообчето неодно и тоже, разница между логиком и вайром принципиальна. покрайней мере у меня упешно делается шина с типом wire. а логиком выдает то же что и вам. вобчем порт должен быть объявлен проводом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 16 декабря, 2010 Опубликовано 16 декабря, 2010 · Жалоба вообчето неодно и тоже, разница между логиком и вайром принципиальна. Я имел в виду в SV. покрайней мере у меня упешно делается шина с типом wire. а логиком выдает то же что и вам. вобчем порт должен быть объявлен проводом. Я просто interface подключаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться