Reklama
Nepřihlášený uživatel | Zaregistrovat se
 

Téma:

Počítače a InternetVývoj software

Spravuje:

rataiga



Reklama



existuje někdo kdo umí VHDL a výmýšlí v tom nový CPLDčka?

BTW: Zacal jsem si hrat s risc-v procesory. Nejprve s RPU https://github.com/Domipheus/RPU - nenarocny - ovsem s kokotsky navrzenou sbernici a bez interruptu, coz se autor neobtezoval sdelit a diky pritomnosti nadefinovanych irq vstupu a vystupu se mi postaral o mnoho hodin experimentu a studovani risc-v specifikace - pak mne napadlo podivat se dovnitr toho jadra a
zjistil jsem, ze ty piny ma definovane, ale nezapojene! :) Nicmene pro zacatek je to jadro docela dostacujici a rekl bych, ze z hlediska zprovozneni i docela "vanilkove".

Pak jsem presel na picorv32 https://github.com/cliffordwolf/picorv32 , ktery je mnohem propracovanejsi, ale bohuzel je napsany ve verilogu. Plusem je, ze ma implementovanu wishbone sbernici. Ma sice svuj vlastni postoj k implementaci specifikace ALU, nicmene k tomu ma pomerne chytre navrzenou sbernici kooprocesoru, kteremu jsou predany vsechny neimplementovane instrukce. Taky ma dost sverazne navrzeny system interruptu, kteremu pridal sve vlastni optokody, ale zadarilo se mi a uz mam na tom postaveny vlastni SoC pro ktery uz muzu prgat ceckove zdrojaky vyuzivajici RV32IMC specifikaci risc-v a umi pouzivat i ty jeho interrupty.

No a protoze byly Vanoce a proto, ze LUT-u neni nikdy dost, tak jsem si taky neco nadelil a uz majm na stole Nexys A7, nicmene jeste jsem se do nej nepustil...
 
Jas som alterovy/Intelovy :-( A frcim na sunkach z ebay
ta kopa elseif sa mi nepaci. Imao tam bude problem.
Trvalo mi to celkem dlouho, nez jsem si po letech zase vzpomnel, jak takove veci psat, ale kupodivu uz mi to ted na vecer snad v hlave zacina opet startovat do VHDL :)

Spatne je totiz na tom mem navrhu uplne vsechno :) V simulatoru je to samozrejme modularne funkcni, nicmene kdyz se to zapoji spolu dohromady, tak to neni synchronni, takze mi tam vznikalo spousta hazardnich stavu a diky nim mi z toho pak lezou ven takove prapodivnosti.

Jeste to nemam uplne opravene, ale to co ted vidim na analyzeru uz zacina davat smysl.

Kdyz tak to sem potom treba hodim cele...

BTW: je tu sice uz delsi dobu mrtvo, ale kdyby se treba nasel nekdo, kdo ma doma Nexys2, Nexys3 od Digilentu, ci nejakou jinou desku, chce si stim hrat a tady si treba vymenovat zkusenosti, tak budu moc rad :)
Nevím, školy nemám a v rychlosti na to koukám, ale říkám si, jestli syntetizér nevyhodil nějaký warningy o neošetřených větvích. Druhé, co mě napadá, je využít proměnné a signálu přiřadit tak, aby měl vždy hodnotu.
... pokracovani s jinym formatovanim:

i_clk = 100 MHz

i_Ctrl_DWR a i_Ctrl_DRD jsou asynchronni signaly z komunikacniho kontroleru s pozadavkem chci cist / psat a jejich doba trvani je minimalne 4 takty z toho i_clk.

Vyvedl jsem si ven na log analyzer vsechny signaly, vcetne s_AddrIncRequest, ktery je ve stavu '1', pokud probiha RD / WR s incrementem. Zaroven jsem si vyvedl na analyzer spodnich 7 bitu z regMemAddr a logicky soucet vsech ostatnich bitu z regMemAddr.

Kdyz probihaji operace, ktere vyzaduji increment, tak na analyzeru vidim, ze se pri nich nastavi s_AddrIncRequest na hodnotu '1' a jakmile s_CtrlRDWR <= (i_Ctrl_DWR or i_Ctrl_DRD) spadne na '0', tak vidim, ze po uplynuti jednoho taktu i_clk jde na '0' s_AddrIncRequest a provede se incrementace. Obcas se to ale stane bez toho, aniz by se regMemAddr zmenil. Doprcic, proc?
 
Je na okounu jeste nekdo, kdo by si hral s VHDL?

Po letech jsem zase vytahnul desku a rekl jsem si, ze se k tomu vratim. Jako prvni jsem si zacal psat controller se kterym muzu z PC pres USB komunikovat s deskou ( DEPP a DSTM protokolem od Digilentu).
Zahy jsem narazil u ovladace, kterym chci z PC cist / psat obsah pripojenych pameti, ktere maji 27 bitovou adresni sbernici. Udelal jsem si 2 typy prikazu. Jedny ctou a pisou na adresu v pameti a druha sada je urcena pro sequencni cteni a zapis, takze na konci operace udela increment vectoru ve kterem je adresa v pameti.

Vse funguje krasne, az na to, ze se mi ten increment obcas nevykona a mne uz nenapada zadny racionalni duvod k tomu proc se to tak deje.

process (i_clk) begin if rising_edge(i_clk) then if s_CtrlRDWR = '0' and s_AddrIncRequest = '1' then regMemAddr <= std_logic_vector( unsigned(regMemAddr) + 1 ); s_AddrIncRequest <= '0'; elsif s_CtrlDeviceSelected = '1' then if i_Ctrl_DWR = '1' then if i_Ctrl_ADDR = c_CtrlAddr_regAddr0 then regMemAddr(7 downto 0) <= i_Ctrl_DATA; elsif i_Ctrl_ADDR = c_CtrlAddr_regAddr1 then regMemAddr(15 downto 8) <= i_Ctrl_DATA; elsif i_Ctrl_ADDR = c_CtrlAddr_regAddr2 then regMemAddr(23 downto 16) <= i_Ctrl_DATA; elsif i_Ctrl_ADDR = c_CtrlAddr_regAddr3 then regMemAddr(26 downto 24) <= i_Ctrl_DATA(2 downto 0); elsif s_CtrlDeviceMemIncOperation = '1' then s_AddrIncRequest <= s_CtrlDeviceMemIncOperation; end if; elsif i_Ctrl_DRD = '1' then if s_CtrlDeviceMemIncOperation = '1' then s_AddrIncRequest <= s_CtrlDeviceMemIncOperation; end if; end if; end if; end if; end process;
 
Tak sa prosim pozri na toto.
skull Přijedu domů, spočítám 12 mega a   voholim si ptáka
Pred 3 rokama jsem na jeden projekt vyzkousel nekolik konvertoru a vysledek byl vzdy tak nepouzitelny, ze jsem to nakonec zkonvertoval rucne a alespon jsem tim ten model lepe pochopil :)
Reakce na | Vlákno  
o nejakom dobrom konvertore z Verilogu do VHDL?

Pokusam sa prekopat J1 CPU do VHDL. A vysledok je zatial rozporuplny. vysledok pouziva menej LUT-ov aj pamete. ale netusim preco mam odost mensiu maximalnu freq.
 
zz Vsichni lezime ve stoce. Ale nektery z  nas upiraj pohled ke hviezdam..
otazka.

ako naprogramujem FLASH pamet pripojenu k FPGA? (nemyslim konfig flash)
Na nete nemozem najst nic kludneho.

Mam noname China FPGA kit z altera cyclone II a quartus 11.0
 
zz Vsichni lezime ve stoce. Ale nektery z  nas upiraj pohled ke hviezdam..
mozete my vysvetlit preco niekdo davan a web svoj kod a nielen ze tam nema komenty ale ani premenne nemaju moc logicke mena?
 
zz Vsichni lezime ve stoce. Ale nektery z  nas upiraj pohled ke hviezdam..
Tak nakoniec som to vyriesil alibysticky. Vsetky pre mna pouziteln moznosti potrebuju rovnake dlzky registrou tak tom to tam nadratoval natvrdo.
Reakce na | Vlákno  
harmonica Kdo vsadí hodinky, vyhraje pušku. 
(I kdyz LENGTH je asi jenom pro vektor)
 
harmonica Kdo vsadí hodinky, vyhraje pušku. 
Nevim jestli te chapu dobre a navic to nemam jak overit, ale co zkusit:
premenna'LENGTH
Reakce na | Vlákno  
zz Vsichni lezime ve stoce. Ale nektery z  nas upiraj pohled ke hviezdam..
Dalsi pokus :-(

Dalsia vec ktoru neviem najst.
Mam modul ktory konfigurujem cez generic. A aby som nemusel zadavat aj sirku jednotlivych premennych pouzivam premenne typu natural. Ale teraz som zistil ze by som potreboval aby sa to "prepocitalo" na STD_LOGIC_VECTOR.

Takze z "premenna : natural := 123;" potrebujem vediet jej dlzku pre STD_LOGIC_VECTOR.

 
zz Vsichni lezime ve stoce. Ale nektery z  nas upiraj pohled ke hviezdam..
IMAO o vybavenie az tak nejde (to da da dobastlit aj tak su to vecsinou len nejake odpory) treba kupit z co najvecsim cipom. Ja mam aktualne Altera Cyclone-II (najlacnejsi sunt co sa da na Ebay kupit) A dochadzaju mi LE-cka a z vybavenia aj tak vecsinu nepouzijes.
zz Vsichni lezime ve stoce. Ale nektery z  nas upiraj pohled ke hviezdam..
7" LCD z GME. je to 800x480 bodou. Povodny kabel som vythol a namisesto toho na obal dal napajanie a dva chince. Po otvoreni som zistil ze mozno pojde aj VGA tak to budem skusat tento vykend.
zz Vsichni lezime ve stoce. Ale nektery z  nas upiraj pohled ke hviezdam..
toto je len uprava hotoveho a evidentne mrtveho projektu. A tiez som to precistil bolo tam kopu "vychitavok" ktore ma sraly
harmonica Kdo vsadí hodinky, vyhraje pušku. 
Ok, dik, prostuduju to.