Вано 0 4 апреля, 2006 Опубликовано 4 апреля, 2006 · Жалоба Собственно задача состоит в том чтобы упростить следующий код: module SWSIM () ; ----///------------- //--------------------------------------------------------------------- // Define buffered versions of INOUT signals //--------------------------------------------------------------------- integer regAdr ; integer regAdr2; integer i; //--------------------------------- reg [ 15 : 0 ] adr ; reg ade ; reg enb ; genvar bi; bufif0 ( ad [ 0 ], adr [ 0 ], ade ) ; bufif0 ( ad [ 1 ], adr [ 1 ], ade ) ; bufif0 ( ad [ 2 ], adr [ 2 ], ade ) ; bufif0 ( ad [ 3 ], adr [ 3 ], ade ) ; bufif0 ( ad [ 4 ], adr [ 4 ], ade ) ; bufif0 ( ad [ 5 ], adr [ 5 ], ade ) ; bufif0 ( ad [ 6 ], adr [ 6 ], ade ) ; bufif0 ( ad [ 7 ], adr [ 7 ], ade ) ; bufif0 ( ad [ 8 ], adr [ 8 ], ade ) ; bufif0 ( ad [ 9 ], adr [ 9 ], ade ) ; bufif0 ( ad [ 10 ], adr [ 10 ], ade ) ; bufif0 ( ad [ 11 ], adr [ 11 ], ade ) ; bufif0 ( ad [ 12 ], adr [ 12 ], ade ) ; bufif0 ( ad [ 13 ], adr [ 13 ], ade ) ; bufif0 ( ad [ 14 ], adr [ 14 ], ade ) ; bufif0 ( ad [ 15 ], adr [ 15 ], ade ) ; reg [ 15 : 0 ] fas_dbr ; reg fas_dbe ; bufif0 ( fas_db [ 0 ], fas_dbr [ 0 ], fas_ndboe ) ; bufif0 ( fas_db [ 1 ], fas_dbr [ 1 ], fas_ndboe ) ; bufif0 ( fas_db [ 2 ], fas_dbr [ 2 ], fas_ndboe ) ; bufif0 ( fas_db [ 3 ], fas_dbr [ 3 ], fas_ndboe ) ; bufif0 ( fas_db [ 4 ], fas_dbr [ 4 ], fas_ndboe ) ; bufif0 ( fas_db [ 5 ], fas_dbr [ 5 ], fas_ndboe ) ; bufif0 ( fas_db [ 6 ], fas_dbr [ 6 ], fas_ndboe ) ; bufif0 ( fas_db [ 7 ], fas_dbr [ 7 ], fas_ndboe ) ; bufif0 ( fas_db [ 8 ], fas_dbr [ 8 ], fas_ndboe ) ; bufif0 ( fas_db [ 9 ], fas_dbr [ 9 ], fas_ndboe ) ; bufif0 ( fas_db [ 10 ], fas_dbr [ 10 ], fas_ndboe ) ; bufif0 ( fas_db [ 11 ], fas_dbr [ 11 ], fas_ndboe ) ; bufif0 ( fas_db [ 12 ], fas_dbr [ 12 ], fas_ndboe ) ; bufif0 ( fas_db [ 13 ], fas_dbr [ 13 ], fas_ndboe ) ; bufif0 ( fas_db [ 14 ], fas_dbr [ 14 ], fas_ndboe ) ; bufif0 ( fas_db [ 15 ], fas_dbr [ 15 ], fas_ndboe ) ; reg [ 15 : 0 ] ide0_datar, ide1_datar, ide2_datar ; reg [ 15 : 0 ] ide3_datar, ide4_datar, ide5_datar ; reg [ 15 : 0 ] ide6_datar, ide7_datar, ide8_datar ; reg [ 15 : 0 ] ide9_datar; reg ide0_e, ide1_e, ide2_e, ide3_e, ide4_e, ide5_e ; reg ide6_e, ide7_e, ide8_e, ide9_e ; bufif0 ( ide0_data [ 0 ], ide0_datar [ 0 ], ide0_e ) ; bufif0 ( ide0_data [ 1 ], ide0_datar [ 1 ], ide0_e ) ; bufif0 ( ide0_data [ 2 ], ide0_datar [ 2 ], ide0_e ) ; bufif0 ( ide0_data [ 3 ], ide0_datar [ 3 ], ide0_e ) ; bufif0 ( ide0_data [ 4 ], ide0_datar [ 4 ], ide0_e ) ; bufif0 ( ide0_data [ 5 ], ide0_datar [ 5 ], ide0_e ) ; bufif0 ( ide0_data [ 6 ], ide0_datar [ 6 ], ide0_e ) ; bufif0 ( ide0_data [ 7 ], ide0_datar [ 7 ], ide0_e ) ; bufif0 ( ide0_data [ 8 ], ide0_datar [ 8 ], ide0_e ) ; bufif0 ( ide0_data [ 9 ], ide0_datar [ 9 ], ide0_e ) ; bufif0 ( ide0_data [ 10 ], ide0_datar [ 10 ], ide0_e ) ; bufif0 ( ide0_data [ 11 ], ide0_datar [ 11 ], ide0_e ) ; bufif0 ( ide0_data [ 12 ], ide0_datar [ 12 ], ide0_e ) ; bufif0 ( ide0_data [ 13 ], ide0_datar [ 13 ], ide0_e ) ; bufif0 ( ide0_data [ 14 ], ide0_datar [ 14 ], ide0_e ) ; bufif0 ( ide0_data [ 15 ], ide0_datar [ 15 ], ide0_e ) ; bufif0 ( ide1_data [ 0 ], ide1_datar [ 0 ], ide1_e ) ; bufif0 ( ide1_data [ 1 ], ide1_datar [ 1 ], ide1_e ) ; bufif0 ( ide1_data [ 2 ], ide1_datar [ 2 ], ide1_e ) ; bufif0 ( ide1_data [ 3 ], ide1_datar [ 3 ], ide1_e ) ; bufif0 ( ide1_data [ 4 ], ide1_datar [ 4 ], ide1_e ) ; bufif0 ( ide1_data [ 5 ], ide1_datar [ 5 ], ide1_e ) ; bufif0 ( ide1_data [ 6 ], ide1_datar [ 6 ], ide1_e ) ; bufif0 ( ide1_data [ 7 ], ide1_datar [ 7 ], ide1_e ) ; bufif0 ( ide1_data [ 8 ], ide1_datar [ 8 ], ide1_e ) ; bufif0 ( ide1_data [ 9 ], ide1_datar [ 9 ], ide1_e ) ; bufif0 ( ide1_data [ 10 ], ide1_datar [ 10 ], ide1_e ) ; bufif0 ( ide1_data [ 11 ], ide1_datar [ 11 ], ide1_e ) ; bufif0 ( ide1_data [ 12 ], ide1_datar [ 12 ], ide1_e ) ; bufif0 ( ide1_data [ 13 ], ide1_datar [ 13 ], ide1_e ) ; bufif0 ( ide1_data [ 14 ], ide1_datar [ 14 ], ide1_e ) ; bufif0 ( ide1_data [ 15 ], ide1_datar [ 15 ], ide1_e ) ; bufif0 ( ide2_data [ 0 ], ide2_datar [ 0 ], ide2_e ) ; bufif0 ( ide2_data [ 1 ], ide2_datar [ 1 ], ide2_e ) ; bufif0 ( ide2_data [ 2 ], ide2_datar [ 2 ], ide2_e ) ; bufif0 ( ide2_data [ 3 ], ide2_datar [ 3 ], ide2_e ) ; bufif0 ( ide2_data [ 4 ], ide2_datar [ 4 ], ide2_e ) ; bufif0 ( ide2_data [ 5 ], ide2_datar [ 5 ], ide2_e ) ; bufif0 ( ide2_data [ 6 ], ide2_datar [ 6 ], ide2_e ) ; bufif0 ( ide2_data [ 7 ], ide2_datar [ 7 ], ide2_e ) ; bufif0 ( ide2_data [ 8 ], ide2_datar [ 8 ], ide2_e ) ; bufif0 ( ide2_data [ 9 ], ide2_datar [ 9 ], ide2_e ) ; bufif0 ( ide2_data [ 10 ], ide2_datar [ 10 ], ide2_e ) ; bufif0 ( ide2_data [ 11 ], ide2_datar [ 11 ], ide2_e ) ; bufif0 ( ide2_data [ 12 ], ide2_datar [ 12 ], ide2_e ) ; bufif0 ( ide2_data [ 13 ], ide2_datar [ 13 ], ide2_e ) ; bufif0 ( ide2_data [ 14 ], ide2_datar [ 14 ], ide2_e ) ; bufif0 ( ide2_data [ 15 ], ide2_datar [ 15 ], ide2_e ) ; bufif0 ( ide3_data [ 0 ], ide3_datar [ 0 ], ide3_e ) ; bufif0 ( ide3_data [ 1 ], ide3_datar [ 1 ], ide3_e ) ; bufif0 ( ide3_data [ 2 ], ide3_datar [ 2 ], ide3_e ) ; bufif0 ( ide3_data [ 3 ], ide3_datar [ 3 ], ide3_e ) ; bufif0 ( ide3_data [ 4 ], ide3_datar [ 4 ], ide3_e ) ; bufif0 ( ide3_data [ 5 ], ide3_datar [ 5 ], ide3_e ) ; bufif0 ( ide3_data [ 6 ], ide3_datar [ 6 ], ide3_e ) ; bufif0 ( ide3_data [ 7 ], ide3_datar [ 7 ], ide3_e ) ; bufif0 ( ide3_data [ 8 ], ide3_datar [ 8 ], ide3_e ) ; bufif0 ( ide3_data [ 9 ], ide3_datar [ 9 ], ide3_e ) ; bufif0 ( ide3_data [ 10 ], ide3_datar [ 10 ], ide3_e ) ; bufif0 ( ide3_data [ 11 ], ide3_datar [ 11 ], ide3_e ) ; bufif0 ( ide3_data [ 12 ], ide3_datar [ 12 ], ide3_e ) ; bufif0 ( ide3_data [ 13 ], ide3_datar [ 13 ], ide3_e ) ; bufif0 ( ide3_data [ 14 ], ide3_datar [ 14 ], ide3_e ) ; bufif0 ( ide3_data [ 15 ], ide3_datar [ 15 ], ide3_e ) ; bufif0 ( ide4_data [ 0 ], ide4_datar [ 0 ], ide4_e ) ; bufif0 ( ide4_data [ 1 ], ide4_datar [ 1 ], ide4_e ) ; bufif0 ( ide4_data [ 2 ], ide4_datar [ 2 ], ide4_e ) ; bufif0 ( ide4_data [ 3 ], ide4_datar [ 3 ], ide4_e ) ; bufif0 ( ide4_data [ 4 ], ide4_datar [ 4 ], ide4_e ) ; bufif0 ( ide4_data [ 5 ], ide4_datar [ 5 ], ide4_e ) ; bufif0 ( ide4_data [ 6 ], ide4_datar [ 6 ], ide4_e ) ; bufif0 ( ide4_data [ 7 ], ide4_datar [ 7 ], ide4_e ) ; bufif0 ( ide4_data [ 8 ], ide4_datar [ 8 ], ide4_e ) ; bufif0 ( ide4_data [ 9 ], ide4_datar [ 9 ], ide4_e ) ; bufif0 ( ide4_data [ 10 ], ide4_datar [ 10 ], ide4_e ) ; bufif0 ( ide4_data [ 11 ], ide4_datar [ 11 ], ide4_e ) ; bufif0 ( ide4_data [ 12 ], ide4_datar [ 12 ], ide4_e ) ; bufif0 ( ide4_data [ 13 ], ide4_datar [ 13 ], ide4_e ) ; bufif0 ( ide4_data [ 14 ], ide4_datar [ 14 ], ide4_e ) ; bufif0 ( ide4_data [ 15 ], ide4_datar [ 15 ], ide4_e ) ; bufif0 ( ide5_data [ 0 ], ide5_datar [ 0 ], ide5_e ) ; bufif0 ( ide5_data [ 1 ], ide5_datar [ 1 ], ide5_e ) ; bufif0 ( ide5_data [ 2 ], ide5_datar [ 2 ], ide5_e ) ; bufif0 ( ide5_data [ 3 ], ide5_datar [ 3 ], ide5_e ) ; bufif0 ( ide5_data [ 4 ], ide5_datar [ 4 ], ide5_e ) ; bufif0 ( ide5_data [ 5 ], ide5_datar [ 5 ], ide5_e ) ; bufif0 ( ide5_data [ 6 ], ide5_datar [ 6 ], ide5_e ) ; bufif0 ( ide5_data [ 7 ], ide5_datar [ 7 ], ide5_e ) ; bufif0 ( ide5_data [ 8 ], ide5_datar [ 8 ], ide5_e ) ; bufif0 ( ide5_data [ 9 ], ide5_datar [ 9 ], ide5_e ) ; bufif0 ( ide5_data [ 10 ], ide5_datar [ 10 ], ide5_e ) ; bufif0 ( ide5_data [ 11 ], ide5_datar [ 11 ], ide5_e ) ; bufif0 ( ide5_data [ 12 ], ide5_datar [ 12 ], ide5_e ) ; bufif0 ( ide5_data [ 13 ], ide5_datar [ 13 ], ide5_e ) ; bufif0 ( ide5_data [ 14 ], ide5_datar [ 14 ], ide5_e ) ; bufif0 ( ide5_data [ 15 ], ide5_datar [ 15 ], ide5_e ) ; bufif0 ( ide6_data [ 0 ], ide6_datar [ 0 ], ide6_e ) ; bufif0 ( ide6_data [ 1 ], ide6_datar [ 1 ], ide6_e ) ; bufif0 ( ide6_data [ 2 ], ide6_datar [ 2 ], ide6_e ) ; bufif0 ( ide6_data [ 3 ], ide6_datar [ 3 ], ide6_e ) ; bufif0 ( ide6_data [ 4 ], ide6_datar [ 4 ], ide6_e ) ; bufif0 ( ide6_data [ 5 ], ide6_datar [ 5 ], ide6_e ) ; bufif0 ( ide6_data [ 6 ], ide6_datar [ 6 ], ide6_e ) ; bufif0 ( ide6_data [ 7 ], ide6_datar [ 7 ], ide6_e ) ; bufif0 ( ide6_data [ 8 ], ide6_datar [ 8 ], ide6_e ) ; bufif0 ( ide6_data [ 9 ], ide6_datar [ 9 ], ide6_e ) ; bufif0 ( ide6_data [ 10 ], ide6_datar [ 10 ], ide6_e ) ; bufif0 ( ide6_data [ 11 ], ide6_datar [ 11 ], ide6_e ) ; bufif0 ( ide6_data [ 12 ], ide6_datar [ 12 ], ide6_e ) ; bufif0 ( ide6_data [ 13 ], ide6_datar [ 13 ], ide6_e ) ; bufif0 ( ide6_data [ 14 ], ide6_datar [ 14 ], ide6_e ) ; bufif0 ( ide6_data [ 15 ], ide6_datar [ 15 ], ide6_e ) ; bufif0 ( ide7_data [ 0 ], ide7_datar [ 0 ], ide7_e ) ; bufif0 ( ide7_data [ 1 ], ide7_datar [ 1 ], ide7_e ) ; bufif0 ( ide7_data [ 2 ], ide7_datar [ 2 ], ide7_e ) ; bufif0 ( ide7_data [ 3 ], ide7_datar [ 3 ], ide7_e ) ; bufif0 ( ide7_data [ 4 ], ide7_datar [ 4 ], ide7_e ) ; bufif0 ( ide7_data [ 5 ], ide7_datar [ 5 ], ide7_e ) ; bufif0 ( ide7_data [ 6 ], ide7_datar [ 6 ], ide7_e ) ; bufif0 ( ide7_data [ 7 ], ide7_datar [ 7 ], ide7_e ) ; bufif0 ( ide7_data [ 8 ], ide7_datar [ 8 ], ide7_e ) ; bufif0 ( ide7_data [ 9 ], ide7_datar [ 9 ], ide7_e ) ; bufif0 ( ide7_data [ 10 ], ide7_datar [ 10 ], ide7_e ) ; bufif0 ( ide7_data [ 11 ], ide7_datar [ 11 ], ide7_e ) ; bufif0 ( ide7_data [ 12 ], ide7_datar [ 12 ], ide7_e ) ; bufif0 ( ide7_data [ 13 ], ide7_datar [ 13 ], ide7_e ) ; bufif0 ( ide7_data [ 14 ], ide7_datar [ 14 ], ide7_e ) ; bufif0 ( ide7_data [ 15 ], ide7_datar [ 15 ], ide7_e ) ; bufif0 ( ide8_data [ 0 ], ide8_datar [ 0 ], ide8_e ) ; bufif0 ( ide8_data [ 1 ], ide8_datar [ 1 ], ide8_e ) ; bufif0 ( ide8_data [ 2 ], ide8_datar [ 2 ], ide8_e ) ; bufif0 ( ide8_data [ 3 ], ide8_datar [ 3 ], ide8_e ) ; bufif0 ( ide8_data [ 4 ], ide8_datar [ 4 ], ide8_e ) ; bufif0 ( ide8_data [ 5 ], ide8_datar [ 5 ], ide8_e ) ; bufif0 ( ide8_data [ 6 ], ide8_datar [ 6 ], ide8_e ) ; bufif0 ( ide8_data [ 7 ], ide8_datar [ 7 ], ide8_e ) ; bufif0 ( ide8_data [ 8 ], ide8_datar [ 8 ], ide8_e ) ; bufif0 ( ide8_data [ 9 ], ide8_datar [ 9 ], ide8_e ) ; bufif0 ( ide8_data [ 10 ], ide8_datar [ 10 ], ide8_e ) ; bufif0 ( ide8_data [ 11 ], ide8_datar [ 11 ], ide8_e ) ; bufif0 ( ide8_data [ 12 ], ide8_datar [ 12 ], ide8_e ) ; bufif0 ( ide8_data [ 13 ], ide8_datar [ 13 ], ide8_e ) ; bufif0 ( ide8_data [ 14 ], ide8_datar [ 14 ], ide8_e ) ; bufif0 ( ide8_data [ 15 ], ide8_datar [ 15 ], ide8_e ) ; bufif0 ( ide9_data [ 0 ], ide9_datar [ 0 ], ide9_e ) ; bufif0 ( ide9_data [ 1 ], ide9_datar [ 1 ], ide9_e ) ; bufif0 ( ide9_data [ 2 ], ide9_datar [ 2 ], ide9_e ) ; bufif0 ( ide9_data [ 3 ], ide9_datar [ 3 ], ide9_e ) ; bufif0 ( ide9_data [ 4 ], ide9_datar [ 4 ], ide9_e ) ; bufif0 ( ide9_data [ 5 ], ide9_datar [ 5 ], ide9_e ) ; bufif0 ( ide9_data [ 6 ], ide9_datar [ 6 ], ide9_e ) ; bufif0 ( ide9_data [ 7 ], ide9_datar [ 7 ], ide9_e ) ; bufif0 ( ide9_data [ 8 ], ide9_datar [ 8 ], ide9_e ) ; bufif0 ( ide9_data [ 9 ], ide9_datar [ 9 ], ide9_e ) ; bufif0 ( ide9_data [ 10 ], ide9_datar [ 10 ], ide9_e ) ; bufif0 ( ide9_data [ 11 ], ide9_datar [ 11 ], ide9_e ) ; bufif0 ( ide9_data [ 12 ], ide9_datar [ 12 ], ide9_e ) ; bufif0 ( ide9_data [ 13 ], ide9_datar [ 13 ], ide9_e ) ; bufif0 ( ide9_data [ 14 ], ide9_datar [ 14 ], ide9_e ) ; bufif0 ( ide9_data [ 15 ], ide9_datar [ 15 ], ide9_e ) ; Cобственно вместо кода выше написал следующий код: generate for (bi=0; bi<16; bi=bi+1) begin:bit bufif0 ( ad[ bi ] , adr [ bi ] , ade ) ; bufif0 ( fas_db[ bi ] , fas_dbr[ bi ] , fas_ndboe ) ; bufif0 ( ide0_data[ bi ] , ide0_datar[ bi ] , ide0_e ) ; bufif0 ( ide1_data[ bi ] , ide1_datar[ bi ] , ide1_e ) ; bufif0 ( ide2_data[ bi ] , ide2_datar[ bi ] , ide2_e ) ; bufif0 ( ide3_data[ bi ] , ide3_datar[ bi ] , ide3_e ) ; bufif0 ( ide4_data[ bi ] , ide4_datar[ bi ] , ide4_e ) ; bufif0 ( ide5_data[ bi ] , ide5_datar[ bi ] , ide5_e ) ; bufif0 ( ide6_data[ bi ] , ide6_datar[ bi ] , ide6_e ) ; bufif0 ( ide7_data[ bi ] , ide7_datar[ bi ] , ide7_e ) ; bufif0 ( ide8_data[ bi ] , ide8_datar[ bi ] , ide8_e ) ; bufif0 ( ide9_data[ bi ] , ide9_datar[ bi ] , ide9_e ) ; end endgenerate Verilog его понимает , а MOdelsim жестко вылетает. Как можно еще избавиться от этих bufif0, как сократить код? //--------------------------------------------------------------------- // INITIAL block //--------------------------------------------------------------------- initial begin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CaPpuCcino 0 4 апреля, 2006 Опубликовано 4 апреля, 2006 · Жалоба вообще-то в глазах рябит - - проблема в том (а точнее плюс моделсима) что он знает направления входов-выходов примитивов - у вас выходной сигнал (первый в перечисление портов) объявлен как регистр - а без always нельзя -- замените на wire - будет работать (bufif0(output, input, input) ) к стати а кто такой Verilog, который это всё понимает? имя и фирму тулза назовите, плз Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Вано 0 4 апреля, 2006 Опубликовано 4 апреля, 2006 (изменено) · Жалоба Действительно в глазах рябит, поэтому и ищу способ заменить эти все bufif0 для каждого разряда на какие-нибудь циклы. С компиляцией verilog кода проблем нет, (код компилирую в modelsimSE 6.0с), затем создаю временную диаграмму и при нажатии на старт симуляции modelsim жостко вылетает, т.е. симуляция не запускается, а с компилятором все в порядке. Собственно мне нужно упростить вот это: bufif0 ( ide0_data [ 0 ], ide0_datar [ 0 ], ide0_e ) ; bufif0 ( ide0_data [ 1 ], ide0_datar [ 1 ], ide0_e ) ; bufif0 ( ide0_data [ 2 ], ide0_datar [ 2 ], ide0_e ) ; bufif0 ( ide0_data [ 3 ], ide0_datar [ 3 ], ide0_e ) ; bufif0 ( ide0_data [ 4 ], ide0_datar [ 4 ], ide0_e ) ; bufif0 ( ide0_data [ 5 ], ide0_datar [ 5 ], ide0_e ) ; bufif0 ( ide0_data [ 6 ], ide0_datar [ 6 ], ide0_e ) ; bufif0 ( ide0_data [ 7 ], ide0_datar [ 7 ], ide0_e ) ; bufif0 ( ide0_data [ 8 ], ide0_datar [ 8 ], ide0_e ) ; bufif0 ( ide0_data [ 9 ], ide0_datar [ 9 ], ide0_e ) ; bufif0 ( ide0_data [ 10 ], ide0_datar [ 10 ], ide0_e ) ; bufif0 ( ide0_data [ 11 ], ide0_datar [ 11 ], ide0_e ) ; bufif0 ( ide0_data [ 12 ], ide0_datar [ 12 ], ide0_e ) ; bufif0 ( ide0_data [ 13 ], ide0_datar [ 13 ], ide0_e ) ; bufif0 ( ide0_data [ 14 ], ide0_datar [ 14 ], ide0_e ) ; bufif0 ( ide0_data [ 15 ], ide0_datar [ 15 ], ide0_e ) ; Простым циклом нельзя, т.к. это блок объявления примитивов , связей,переменных вместо этого создал это: generate for (bi=0; bi<16; bi=bi+1) begin:bit bufif0 ( ide0_data[ bi ] , ide0_datar[ bi ] , ide0_e ) ; end endgenerate НО этот код, не симулируется. Код компилируется и симулируется в quartus 6.0c Изменено 4 апреля, 2006 пользователем Вано Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Вано 0 4 апреля, 2006 Опубликовано 4 апреля, 2006 · Жалоба вообще-то в глазах рябит - - проблема в том (а точнее плюс моделсима) что он знает направления входов-выходов примитивов - у вас выходной сигнал (первый в перечисление портов) объявлен как регистр - а без always нельзя -- замените на wire - будет работать к стати а кто такой Verilog, который это всё понимает? имя и фирму тулза назовите, плз К сожалению на wire заменить reg нельзя, т.к. у меня еще кроме этого куча функций создана, которые нужно будет переписывать, они работают с переменными как с регистром. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CaPpuCcino 0 4 апреля, 2006 Опубликовано 4 апреля, 2006 · Жалоба К сожалению на wire заменить reg нельзя, т.к. у меня еще кроме этого куча функций создана, которые нужно будет переписывать, они работают с переменными как с регистром. не думаю что это невозможно - на wire нужно заменить нолько то что подключено к выходам приметива /buff(out,in,in)/ их в принципе нельзя подключить подругому к выходам встраиваемого экземпляра модуля, то как изменение этих сигналов на тип wire может повлиять на остальной код я тоже не вижу, потому что они всегда (эти переменные) будут правосторонними членами выражений (справа от оператора присваивания) а значит их можно использовать как в always так и assign c initial приведите плз свой пример где такая замена невозможна технически - а то мне на ум не приходит в каких ситуациях это невозможно если вам уж так хочется сохранить статус кво - то можно создать синоним wire a_synonim; reg a; reg b,c; buf instance(a,b,c); always@* a=a_synonim; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BrainForce 0 5 апреля, 2006 Опубликовано 5 апреля, 2006 (изменено) · Жалоба не думаю что это невозможно - на wire нужно заменить нолько то что подключено к выходам приметива /buff(out,in,in)/ их в принципе нельзя подключить подругому к выходам встраиваемого экземпляра модуля, то как изменение этих сигналов на тип wire может повлиять на остальной код я тоже не вижу, потому что они всегда (эти переменные) будут правосторонними членами выражений (справа от оператора присваивания) а значит их можно использовать как в always так и assign c initial приведите плз свой пример где такая замена невозможна технически - а то мне на ум не приходит в каких ситуациях это невозможно если вам уж так хочется сохранить статус кво - то можно создать синоним wire a_synonim; reg a; reg b,c; buf instance(a,b,c); always@* a=a_synonim; И вы думаете следующий код после этого заработает: generate for (bi=0; bi<16; bi=bi+1) begin:bit bufif0 ( ad[ bi ] , adr [ bi ] , ade ) ; bufif0 ( fas_db[ bi ] , fas_dbr[ bi ] , fas_ndboe ) ; bufif0 ( ide0_data[ bi ] , ide0_datar[ bi ] , ide0_e ) ; bufif0 ( ide1_data[ bi ] , ide1_datar[ bi ] , ide1_e ) ; bufif0 ( ide2_data[ bi ] , ide2_datar[ bi ] , ide2_e ) ; bufif0 ( ide3_data[ bi ] , ide3_datar[ bi ] , ide3_e ) ; bufif0 ( ide4_data[ bi ] , ide4_datar[ bi ] , ide4_e ) ; bufif0 ( ide5_data[ bi ] , ide5_datar[ bi ] , ide5_e ) ; bufif0 ( ide6_data[ bi ] , ide6_datar[ bi ] , ide6_e ) ; bufif0 ( ide7_data[ bi ] , ide7_datar[ bi ] , ide7_e ) ; bufif0 ( ide8_data[ bi ] , ide8_datar[ bi ] , ide8_e ) ; bufif0 ( ide9_data[ bi ] , ide9_datar[ bi ] , ide9_e ) ; end endgenerate Моделсим как-то странно поддерживает generate... ? Изменено 5 апреля, 2006 пользователем BrainForce Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CaPpuCcino 0 5 апреля, 2006 Опубликовано 5 апреля, 2006 · Жалоба И вы думаете следующий код после этого заработает: Моделсим как-то странно поддерживает generate... ? конечно заработает (ну ток если цикл немножко уменьшить : не с 0 до 16 а к примеру с 0 до 15 :) ) и ноги приметивов нормально привязать. а что касается моделсима и generate - то тут вообще никаких нареканий - моделсим хорошо поддерживаер это нововведение - у меня были дженерейты намного извращёнее чем этот - и ничего плохого с моделсимом не произошло (а если вешать входы на выходы - то тут конечно никакой моделсим не выдержит ;) ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться