Перейти к содержанию
    

Вопрос по verilog?

Собственно задача состоит в том чтобы упростить следующий код:

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вообще-то в глазах рябит -

- проблема в том (а точнее плюс моделсима) что он знает направления входов-выходов примитивов - у вас выходной сигнал (первый в перечисление портов) объявлен как регистр - а без always нельзя -- замените на wire - будет работать (bufif0(output, input, input) )

 

к стати а кто такой Verilog, который это всё понимает?

имя и фирму тулза назовите, плз

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Действительно в глазах рябит, поэтому и ищу способ заменить эти все 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

Изменено пользователем Вано

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вообще-то в глазах рябит -

- проблема в том (а точнее плюс моделсима) что он знает направления входов-выходов примитивов - у вас выходной сигнал (первый в перечисление портов) объявлен как регистр - а без always нельзя -- замените на wire - будет работать

 

к стати а кто такой Verilog, который это всё понимает?

имя и фирму тулза назовите, плз

К сожалению на wire заменить reg нельзя, т.к. у меня еще кроме этого куча функций создана, которые нужно будет переписывать, они работают с переменными как с регистром.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К сожалению на 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;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не думаю что это невозможно - на 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... ?

Изменено пользователем BrainForce

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И вы думаете следующий код после этого заработает:

Моделсим как-то странно поддерживает generate... ?

конечно заработает (ну ток если цикл немножко уменьшить : не с 0 до 16 а к примеру с 0 до 15 :) )

и ноги приметивов нормально привязать.

а что касается моделсима и generate - то тут вообще никаких нареканий - моделсим хорошо поддерживаер это нововведение - у меня были дженерейты намного извращёнее чем этот - и ничего плохого с моделсимом не произошло (а если вешать входы на выходы - то тут конечно никакой моделсим не выдержит ;) )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...