troll80 0 16 ноября, 2009 Опубликовано 16 ноября, 2009 · Жалоба Здравствуйте. было у кого так. есть проект на Veriloge, в MAX PLUS2. при его компиляции и прогоне в симуляторе, когда выбираешь кристалл. он не создает некоторые регистры. их просто нет и все .симулятор показывает в этих регистрах "X"..поиск этих регистров не чего не дает.регистры эти используются. причем там так Tr[7:0] объявляется, а создается только Tr[0]. а при функциональной компиляции они создаются. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
full41 0 16 ноября, 2009 Опубликовано 16 ноября, 2009 · Жалоба Здравствуйте. было у кого так. есть проект на Veriloge, в MAX PLUS2. при его компиляции и прогоне в симуляторе, когда выбираешь кристалл. он не создает некоторые регистры. их просто нет и все .симулятор показывает в этих регистрах "X"..поиск этих регистров не чего не дает.регистры эти используются. причем там так Tr[7:0] объявляется, а создается только Tr[0]. а при функциональной компиляции они создаются. Проверь то что ты написал на Veriloge, у меня такое бывает когда я в верхнем файле иерархии забываю написать диапазон Tr[7:0], в место это пишу всегда Tr, компилятор считает что так как в верхней иерархии эти регистры не нужны, то и тогда они не где не нужны! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
troll80 0 16 ноября, 2009 Опубликовано 16 ноября, 2009 · Жалоба там правильно написано reg [7:0] TR; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
full41 0 16 ноября, 2009 Опубликовано 16 ноября, 2009 · Жалоба там правильно написано reg [7:0] TR; Если программа не секретная. то выкладывай посмотрим!!=)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
troll80 0 16 ноября, 2009 Опубликовано 16 ноября, 2009 · Жалоба она большая..больше 2000 строк... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
full41 0 16 ноября, 2009 Опубликовано 16 ноября, 2009 · Жалоба она большая..больше 2000 строк... прикрепи к сообщению в виде текстового файла!=) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvladim 0 16 ноября, 2009 Опубликовано 16 ноября, 2009 · Жалоба Синтезируйте свой проект под Квартусом и внимательно просмотрите предупреждения. Может чего и понятно станет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
troll80 0 16 ноября, 2009 Опубликовано 16 ноября, 2009 · Жалоба квартус не поддерживает max9000. у меня. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 3 16 ноября, 2009 Опубликовано 16 ноября, 2009 · Жалоба квартус не поддерживает max9000. у меня. Посмотрите по ресурсам. Если нет этих разрядов регистра, значит они и не нужны при этом описании. (выделите это место как отдельно функциональный модуль и посмотрите результат) В квартусе не обязательно иметь семейство 9000. используйте за основу циклон 1 и посмотрите в RTL просмотрщике так и по ресурсам реально используемым (Вас же наличие разрядов регистра интересует). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
troll80 0 16 ноября, 2009 Опубликовано 16 ноября, 2009 · Жалоба приведу отрывок, может поможет . регистры TR[0] и tusk[0] только появляются.остальных нет. они все используются в этом модуле. module ksbk ( GCLK,_SRESET,_LERR,GOE, _GCLR,_SSEL,_SAS,_SBG,SPA,SPA18,ZM,FM, BV_in,BVP_in,ERRA, NVU, _DRQ3, PKK, BV, BVP,_SBR,ABP,AB,_CS,_PWR,_PRD,OEPSD, _U0SH,KM, RBM,PBBV,RES,PKO,ABOZU,_PRSH,PRM,_SBRM, DB,DBP,SD,SDP,SRD,SSIZ, _SACK); . . . reg [7:0] TR; reg [10:0]tusk; . . . //TR0 always @ (posedge CLK or negedge CLR ) begin if (CLR == 0) TR[0] <= 1'b0; else if (ZMR & AB[2:0] == 0) TR[0] <= DB[0]; //=0 else if (!ZM & ERRA) TR[0] <=1'b1; else TR[0] <= TR[0]; end //TR1 always @( posedge CLK or negedge CLR ) begin if (CLR ==0) TR[1] <= 1'b0; else if (ZMR & AB[2:0] == 1) TR[1] <= DB[1]; else TR[1] <= TR[1]; end //TR2 always @(posedge CLK ) begin if ( _GCLR ==0 ) TR[2] <= 1'b1; else if (ZMR & AB[2:0] == 2) TR[2] <= DB[2]; else if (OSH) TR[2] <= 1'b1; else TR[2] <= TR[2]; end //TR3 always @(posedge CLK ) begin if( _GCLR ==0) TR[3] = 1'b1; else if ( ZMR & AB[2:0]) TR[3] = DB[3]; else TR[3] = TR[3]; end //TR4 always @( posedge CLK or negedge CLR) begin if(CLR ==0) TR[4] <=1'b0; else if (ZMR & AB[2:0] == 4) TR[4] <= DB[4]; else if (ZM) TR[4] <=1'b1; else TR[4] <= TR[4]; end //TR5 always @(posedge CLK or negedge CLR) begin if(CLR ==0) TR[5] <=1'b0; else if (ZMR & AB[2:0] == 5) TR[5] <= DB[5]; // -- маска на прерывание системной шины else TR[5] <= TR[5]; end //TR6 always @(posedge CLK or negedge CLR) begin if (CLR ==0) TR[6] <= 1'b0; else if( ZMR & AB[2:0] == 6) TR[6] <= DB[6]; else TR[6] <= TR[6]; end //TR7 always @(posedge CLK or negedge CLR) begin if(CLR ==0) TR[7] <= 1'b0; else if (ZMR & AB[2:0] == 2) TR[7] <= DB[3]; end . . . always @(posedge CLK) begin tusk[0] <= mou & fr & _esp1 ^ (tusk[0] & !wu & !fr | tusk[0] & !wu & _esp1 | wu & DB[0]); end always @(posedge CLK) begin tusk[1] <= mou & tusk[0] & _esp1 ^ (tusk[1] & !wu & _esp1 | wu & DB[1]); end always @(posedge CLK) begin tusk[2] <= mou & tusk[0] & tusk[1] & _esp1 & _esp2 ^(tusk[2] & !wu & _esp1 | wu & DB[2]); end always @(posedge CLK) begin tusk[3] <= mou & tusk[0] & tusk[1] & tusk[2] & _esp1 & _esp2 ^ (tusk[3] & !wu & _esp1 | wu & DB[3]); end always @(posedge CLK) begin tusk[4] <= mou & tusk[0] & tusk[1] & tusk[2] & tusk[3] & _esp1 & _esp2 ^ (tusk[4] & !wu & _esp1 | wu & DB[4]); end always @(posedge CLK) begin tusk[5] <= mou & tusk[0] & tusk[1] & tusk[2] & tusk[3] & tusk[4] & _esp1 & _esp2 ^ (tusk[5] & !wu & _esp1 | wu & DB[5]); end always @(posedge CLK) begin tusk[6] <= (DB[6] & wu | unb) ^(tusk[6] & !wu); end always @(posedge CLK) begin tusk[7] <= DB[7] & wu | tusk[7] & !wu | kk & tusk[9] & kb & mou | !kk & kmr0 & kmr1 & kmr2 & T5 & !rq0 | kk & kmr0 & kmr1 & kmr2 & T5 & rq0; end always @(posedge CLK) begin tusk[8] <= ( DB[8] & wu | tusk[8] & !wu | PKO1); end always @(posedge CLK) begin tusk[9] <= DB[9] & wu | tusk[9] & !wu | kmr0 & kmr1 & kmr2 & T5; end always @(posedge CLK) begin tusk[10] <= (DB[10] & wu | tusk[10] & !wu & !T7); end . . . endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
full41 0 16 ноября, 2009 Опубликовано 16 ноября, 2009 · Жалоба А куда ты значения регистра reg [7:0] TR выводишь!? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
troll80 0 16 ноября, 2009 Опубликовано 16 ноября, 2009 · Жалоба в смысле??куда они дальше идут в модуле или как смотрю в симуляторе? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
full41 0 16 ноября, 2009 Опубликовано 16 ноября, 2009 · Жалоба В приведенной части программы ты используешь регистр [7:0] TR, в нему тебя какие то значения, эти значения ты куда то же выводишь!? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
troll80 0 16 ноября, 2009 Опубликовано 16 ноября, 2009 · Жалоба например так..они еще используются там.. assign robp30 = TR[0] ^ TR[1] ^ TR[2] ^ TR[3]; assign robp31 = TR[4] ^ TR[5] ^ TR[6]; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
full41 0 16 ноября, 2009 Опубликовано 16 ноября, 2009 · Жалоба Сложно разбираться что не правильно, когда не видишь весь код !?? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться