VHDL - konwersja bin2bcd

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Polish to

Threaded View
















bcdval(7 DOWNTO 4) <= binval/10;
bcdval(7 DOWNTO 0) <= binval MOD 10;


"Operator <DIVIDE> must have constnt operands or first operand must be  
power of 2".






Re: VHDL - konwersja bin2bcd
Quoted text here. Click to load it

O VHDL nie ma pojecia wiec sie wypowiem :)

Quoted text here. Click to load it

No, wszytkie mikrokontolery ktore mam dzielenie robia programowo.
W wiekszych mmozenie jest sprzetowe, w mniejszych nawet mnozenie
jest programowe.
  
Quoted text here. Click to load it

Zgaduje ze VHDL z tego kodu chce zrobic siec logiczna ktora
w "jednym kroku" produkuje wynik.  Wszystkie procesory ktore
znam majace sprzetowe dzielenie maja dzielenie wielotaktowe.
Ogolnie jednotaktowa siec dzielaca jest skomplikowan i duza.
Ty masz bardzo maly rozmiar danych, wiec jak sie upierasz
to pewnie mozesz to zrobic "na sile": dla kazdego bitu
wyniku napisac formule boolowska dajaca wartosc tego bitu, tzn
cos w stylu

out0 <=  in0 /* Latwe */
out1 <= (
    /* in = 2 lub in = 3 lub in = 6 lub in = 7 */
    in1 and not in3 ... and not in7
    /* in = 12 lub in = 13 */
    or not in1 and in2 and in3 and not in4 ...
    ....

Przetlumaczone naiwnie da pewnie kilka tysiecy bramek.
Optymalizator moze to troche uproscic, ale nie liczylbym
na dramatyczne uproszczenia.

Rozsadniej zrobic wielotaktowa konwersje, tzn operacje "krok
dzielenia".  Dokladniej, na wejsciu kroku dzielenia masz
dwie liczby 7-bitowe.  Wyjscie to 1 bit wyniku dzielenia
i liczba 7-bitowa (reszta z dzielenia).  Ten bit wyniku
to po prostu resultat porownania.  Reszta to albo
dzielna (jesli bit wyniku to 0) albo dzielna minus
dzielnik (jesli bit wyniku to 1).  Po kroku dzielnia
oba argumenty dzielisz przez 2 (przesuwasz) i jesli
trzeba robisz nastepny krok.  W twoim przypadku
krok dzielenia trzeba powtorzyc 4 razy.  Teoretycznie
mozesz po prostu uzyc kaskade 4 krokow, ale wtedy
powielisz 4 razy glowna czesc.

W twojej konwersji masz maly zakres i pewnie szybkosc
jest malo istotna.  W takim przypadku mozesz uzyc 3
liczniki.  Jeden zliczajacy az do argumetu.  Drugi
liczacy do 10 (daje reszte).  Trzeci zliczajacy
przeniesienia drugiego (daje wynik).

Jesli w projekcie masz pamiec to chyba najrozsadniejsze
jest przechowywanie tabeli konwersji w pamieci.

Jeszcze jedno: bit 0 wyniku jest taki sam jak bit 0 wejscia,
wiec problem redukuje sie do dzielnia liczby szesciobitowej
przez 5.  To pozwala na troche oszczednosci, ale nie
zmienia zasady.

--  
                              Waldek Hebisch

Re: VHDL - konwersja bin2bcd

Quoted text here. Click to load it



--  
Grzegorz Niemirowski
https://www.grzegorz.net/


Re: VHDL - konwersja bin2bcd


m  



binarny,  


konwersji liczby  

towy  



. Jego starszy  


Quoted text here. Click to load it

amo jak na  

ia przez 10, a  

Quoted text here. Click to load it

Quoted text here. Click to load it


Quoted text here. Click to load it



Quoted text here. Click to load it







vhdl binary to bcd.

najmniej zasobnych FPGA



ptokach.

Re: VHDL - konwersja bin2bcd
On 05.12.2020 04:54, Stachu Chebel wrote:


Quoted text here. Click to load it


konwersji BIN-BCD.



Quoted text here. Click to load it


Quoted text here. Click to load it
















Re: VHDL - konwersja bin2bcd




zechowywania  





mujesz
JTAG'iem podobnie jak cokolwiek innego.


nego stopnia  



Quoted text here. Click to load it



na FPGA.




Czy  







zrobione na CPLD z ustawieniem na najprostszego Spartana-3 i popatrz na

 chodzi

od



?


Re: VHDL - konwersja bin2bcd
On 07.12.2020 02:48, Stachu Chebel wrote:


Quoted text here. Click to load it

Quoted text here. Click to load it









Re: VHDL - konwersja bin2bcd

?(a):




?  

 obudowy.  



, Clk, Rst i JTAG  

  






ystkie obecnie







Re: VHDL - konwersja bin2bcd










Quoted text here. Click to load it



Quoted text here. Click to load it

Quoted text here. Click to load it

Quoted text here. Click to load it


Quoted text here. Click to load it






















--  
Pozdrawiam
Grzegorz

Re: VHDL - konwersja bin2bcd

dyskusyjnych:5fcc1ae7$0$559$ snipped-for-privacy@news.neostrada.pl...
W dniu 04.12.2020 o 21:59, Atlantis pisze:

Quoted text here. Click to load it


Quoted text here. Click to load it







Ale to nie oznacza, ze nie powinien umiec dzielenia zaprojektowac.






Quoted text here. Click to load it

No, ciekawe ... najprosciej byloby tabelke wpisac. Wygenerowac gdzies  
obok i tylko wpisac w zrodlo :)

6 bitow wejsciowych, bo najmlodszy idzie bez zmian ... no tak, to moze  
byc w architekturze CPLD zabojcze.

J.


Re: VHDL - konwersja bin2bcd










Quoted text here. Click to load it



Quoted text here. Click to load it

Quoted text here. Click to load it

Quoted text here. Click to load it


Quoted text here. Click to load it






--  
Pozdrawiam
Grzegorz

Re: VHDL - konwersja bin2bcd

Quoted text here. Click to load it


Quoted text here. Click to load it



7-segmentowego.


--  
Pozdrawiam
Grzegorz

Re: VHDL - konwersja bin2bcd
On 07.12.2020 10:04, Grzegorz Kurczyk wrote:

















Re: VHDL - konwersja bin2bcd

dyskusyjnych:5fce4d9b$0$499$ snipped-for-privacy@news.neostrada.pl...
On 07.12.2020 10:04, Grzegorz Kurczyk wrote:





Jak najbardziej - schemat 7490 nie jest najlepszy, ale 74192 nie jest  
skomplikowany.















Ale jakies nieokragle liczby, typu np 43 czy 56 ?
Czy mozesz to podzielic na licznik do 10 i np do 6 na starszej cyfrze  
?

Takie liczenie w BCD do 43 ... no, ciekawe, schemat/wyrazenia sie  
komplikuja, przy pomocy pomocniczej bramki powinno pojsc w miare latwo  
... tylko czy VHDL w CPLD sobie z tym poradzi ..

J.



Re: VHDL - konwersja bin2bcd
On 07.12.2020 18:11, J.F. wrote:

Quoted text here. Click to load it


synchronizacji z DCF77. Typowy projekt edukacyjny. ;)


















Re: VHDL - konwersja bin2bcd

Quoted text here. Click to load it

Quoted text here. Click to load it






Quoted text here. Click to load it






to cztery przerzutniki i jedna bramka AND
Jaki to konkretnie CPLD? Xilinx?




skomplikowany
















--  
Pozdrawiam
Grzegorz

Re: VHDL - konwersja bin2bcd
On 07.12.2020 19:14, Grzegorz Kurczyk wrote:

Quoted text here. Click to load it






Re: VHDL - konwersja bin2bcd

Quoted text here. Click to load it








Jeden bit licznika, to jedna makrocela.

w Verilogu taki licznik synchroniczny to

reg [3..0] licznik;
always @(posedge clk)
   if(reset | (licznik = 9)) then
     licznik <= 0;
   else
     licznik <= licznik + 1;





--  
Pozdrawiam
Grzegorz

Re: VHDL - konwersja bin2bcd

dyskusyjnych:5fce6d2b$0$512$ snipped-for-privacy@news.neostrada.pl...
On 07.12.2020 18:11, J.F. wrote:
Quoted text here. Click to load it






dokladnie. Trywialne wrecz w BCD.









Ale to upraszcza i konstrukcje dekodera, skoro mamy tylko 4 bity  
wejsciowe
(bo najmlodszy sie nie zmienia).
Wpisz tabelke i zobacz co wyjdzie.

Z drugiej strony - licznik BCD liczacy do 24, czy jak kto woli - do  
23,  tez nie jest trudny, bo bitow malo.
Ewentualnie - wpisz tabelke przejsc i pozwol mu zsyntezowac :-)

J.


Site Timeline