VHDL to Verilog

balu balu na k-net.fr
Pondělí Duben 19 08:02:13 CEST 2021


bit a std_logic su rozne typy. Pri priradovani je zrejme nutne urobit 
konverziu. Alebo este lepsie, ak nie je explicitny dovod pouzit bit, 
treba pouzivat signaly len rovnakeho typu (napr. std_logic a 
std_logic_vector). Pravdepodobne nieco ako To_Std_Logic(), nikdy som to 
osobne nepouzil.

Tu je potom uzitocny diagram pre vektory 
https://www.doulos.com/knowhow/vhdl/vhdl-vector-arithmetic-using-numeric_std/



On 19/04/2021 07:33, Jaroslav Buchta wrote:
> Ja uz teda nevim, evidentne nejde priradit bit do std_logic_vector.
> Treba takhle to jde:
>
>     binout(7 downto 1) <= citac(3 downto 0) & 
> conv_std_logic_vector(states'pos(state), 3);
>     IF led1 = '1' THEN
>         binout(0 downto 0) <= "1";
>     ELSE
>         binout(0 downto 0) <= "0";
>     END IF;
>
> nebo takhle:
>     IF led1 = '1' THEN
>         binout(0) <= '1';
>     ELSE
>         binout(0) <= '0';
>     END IF;
> to celkem dava smysl, pole do pole nebo bit na jednu pozici
>
> takhle uz ne:
>     binout(0 downto 0) <= led1;
> Error (10476): VHDL error at nhk_15_buchta_v1.vhd(201): type of 
> identifier "led1" does not agree with its usage as "std_logic_vector" 
> type
> ani
>     binout(0) <= led1;
> Error (10476): VHDL error at nhk_15_buchta_v1.vhd(201): type of 
> identifier "led1" does not agree with its usage as "std_ulogic" type
>
> Tohle by vypadalo nadejne, to by slo asi i do spojeni  ale taky nejde
>     binout(0 downto 0) <= "1" when (led1 = '1') else "0";
> Error (10500): VHDL syntax error at nhk_15_buchta_v1.vhd(201) near 
> text "when";  expecting ";"
>
> Asi je problem v konverzi typu bit na neco kompatibilniho se 
> std_logic? Prece nemuze byt takovy problem pripojit nebo nastavit bit 
> do vektoru...
>
> Dne 18.04.2021 v 20:24 Zdeněk Aster napsal(a):
>>
>> & je skladani bitu musi sedet
>> out(7 downto 0) <= "00000" & citac(4) & citac(3) & citac(1);
>> A podminky jsou normalne and a or....
>>
>>  SIGNAL tmpcitac : std_logic_vector(3 downto 0);
>>
>> tmpcitact  <= citac(3) & citac(2) & citac(1);
>>
>> led8 <= '1' when (tmpcitac=7 ) else '0';
>> led7 <= '1' when (tmpcitac=86) else '0';
>> ...
>> ...
>> nebo pokud je to "pole" bitu
>>
>> led(7) <= '1' when (tmpcitac=7 ) else '0';
>> led(6) <= '1' when (tmpcitac=6 ) else '0';
>> ...
>>
>>
>> Třeba, já teda nevím přesně o co jde a jestli to má být v nějakých 
>> hodinách. VHDL jsem dlouho neviděl,
>> ale psal jsem v tom celkem dost....
>> Mě přišel vždycky děsný VERILOG :-)
>>
>> Zdeněk Aster
>>
>> Dne 18.04.2021 v 18:35 Jaroslav Buchta napsal(a):
>>> To nema byt logicka operace, ale retezeni (spojovani) bitu, nazyvaji 
>>> ten operator concatenation, jak jsem pochopil, logicky :-D
>>> Jak se teda odlisi bitove a logicke and, or ... jsem jeste 
>>> nepochopil ale mam podezreni, ze nijak.
>>> Proste potrebuju naskladat za sebe 4+3+1 bit a zobrazit na osmi 
>>> ledkach...
>>>
>>> Dne 18.04.2021 v 18:26 Jindroush napsal(a):
>>>> A vy chcete 'and' nebo '&'?
>>>>
>>>> On 18.04.2021 18:21, Jaroslav Buchta wrote:
>>>>> Tak se ucim VHDL, to musel vymyslet silenec ;-)
>>>>> Jedna vetsi nez normalni zahada...
>>>>>
>>>>> Mam signaly:
>>>>>
>>>>> binout                : OUT std_logic_vector(7 downto 0));
>>>>>
>>>>> SIGNAL citac : std_logic_vector(3 downto 0);
>>>>> TYPE states IS (S0, S1, S2, S3);
>>>>> SIGNAL state : states := S0;
>>>>>
>>>>> signal led1 : BIT;
>>>>>
>>>>> konstrukce
>>>>> binout <= citac & conv_std_logic_vector(states'pos(state), 3) & led1;
>>>>> hodi chybu
>>>>> Error (10327): VHDL error at xxxx.vhd(200): can't determine 
>>>>> definition of operator ""&"" -- found 0 possible definitions
>>>>>
>>>>> po zmene
>>>>> binout <= citac & conv_std_logic_vector(states'pos(state), 3) & "1";
>>>>> probehne analyza i synteza OK.
>>>>>
>>>>> Blbe neco vidim, nebo v cem muze byt problem? uz zkousim vsechno 
>>>>> mozne asi hodinu, ty slozitejsi konverze asi problem nedelaji kdyz 
>>>>> to jde s konstantnim bitem??? 
>>>>
>>>
>>> _______________________________________________
>>> 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
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list