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