Asi trapna chyba - verilog HDL

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Pátek Březen 27 06:56:46 CET 2015


Tak jsem tuto inicializaci aplikoval na vsechny reg v designu a uz to na 
nic nemelo vliv, mam podezreni, ze tohle je velmi specialni pripad - bez 
te inicializace to udela citac tak, ze je tam plna scitacka 4b a 5.bit 
ma vytvoren registr do ktereho je na D priveden prenos z nejvyssiho radu 
(ktery v pripade hodnoty 15 bude 1 ale do registru se nezapise, protoze 
pri hodnote 15 se do registru zapisuje skrz SLOAD a DATA hodnota 15, 
tedy do vsech 1 a do 5. pokud je 0) Vse je OK do 14, kdy k prenosu 
nedochazi, pri 15 IMHO nejak optimalizator zblbne a vygeneruje blbost...
Kdyz inicializuju citac na 0 explicitne, tak si asi optimalizator 
zanalyzuje, ze to bude proste citac 0..15 a udela to presne na miru se 4 
KO a 4 LUT
Zajimava zkusenost.

Dne 26. 3. 2015 v 23:45 Jaroslav Buchta napsal(a):
> No to je mazec, to
>
> reg [3:0] ldcntr = 4'd0;
>
> fakt pomuze a zmeni to schema celeho citace, je jednodussi... Diky za 
> nasmerovani.
>
> Stejne by ale ta synteza mela vyhodit chybu nebo warning kdyz nedokaze 
> realizovat zadane chovani logiky, ne?
>
> Dne 26. 3. 2015 v 23:23 Jan Smrz napsal(a):
>> A tu inicializaci promenne jste alespon zkusil?
>>
>> J.S.
>>
>>
>> On 26.3.2015 23:13, Jaroslav Buchta wrote:
>>> Tim to IMHO nebude, nevim, jestli je to vlastnost ale vypozoroval 
>>> jsem, ze v simulaci i v realu jsou po inicializaci registry i pameti 
>>> defaultne vynulovane (predpokladam, ze je to logicky soucasti obsahu 
>>> konfiguracni pameti)
>>> Zajimave je, ze v RTL schematu je to jeste OK a ve post fitting je 
>>> schema toho citace pri porovnani s 15 nejak deformovane...
>>> Zkousel jsem ruzne modifikace, treba v case 15: ldcntr <= 15 ale vse 
>>> stejne (pro 14 OK, 15 spatne)
>>> Co pomuze je pridat bit citace takto:
>>>
>>> reg [4:0] ldcntr;
>>>
>>> ....
>>>
>>> always @(posedge clk)
>>> begin
>>>     ldcntr <= ldcntr == 5'd15 ? 5'd15 : ldcntr + 5'd1;
>>> .....
>>>
>>> A je to OK, ten 5. bit ma skutecne v post fitting schematu 
>>> vygenerovany registr, i kdyz hodnota nikdy nepresahne 15.
>>>
>>> Pak to vypada takhle a funkce je OK...
>>>
>>>
>>>
>>> Je to nejake divne, predpokladal jsem, ze mam nejakou chybu v logice 
>>> zapisu, ale nechapu jakou.
>>>
>>>
>>> Dne 26. 3. 2015 v 17:39 Jan Smrz napsal(a):
>>>> Nevidim, ze by se ldcntr jakkoliv inicializoval. Pri startu 
>>>> simulace bude mit stav undefined a pak se odvolava na jeho 
>>>> predchozi hodnotu.
>>>> Spise se divim, ze s jinymi cisly to funguje.
>>>>
>>>>
>>>> J.S.
>>>>
>>>
>>>
>>>
>>> ------------------------------------------------------------------------ 
>>>
>>> Avast logo <http://www.avast.com/>
>>>
>>> This email has been checked for viruses by Avast antivirus software.
>>> www.avast.com <http://www.avast.com/>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
>
> ---
> This email has been checked for viruses by Avast antivirus software.
> http://www.avast.com
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


---
This email has been checked for viruses by Avast antivirus software.
http://www.avast.com



Další informace o konferenci Hw-list