Elektronika.lt
 2024 m. kovo 28 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

Elektronika.lt portalo forumas

Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo. Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.

Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius, kurie nesilaiko forumo taisyklių. Pastebėjus nusižengimus, prašome pranešti.

Dabar yra 2024 03 28, 12:48. Visos datos yra GMT + 2 valandos.
 Forumas » Skaitmeninė elektronika » Pagalbos su CPLD programavimu
Jūs negalite rašyti naujų pranešimų į šį forumą
Jūs negalite atsakinėti į pranešimus šiame forume
Jūs negalite redaguoti savo pranešimų šiame forume
Jūs negalite ištrinti savo pranešimų šiame forume
Jūs negalite dalyvauti apklausose šiame forume
 
  
Puslapis 12
Pereiti prie 1, 2  Toliau
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 Pagalbos su CPLD programavimu
PranešimasParašytas: 2009 12 20, 15:16 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Chulio
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Sveiki,

bandau perkast cpld programavima, bet nekaip sekasi...
Bandau parasyt programa (VHDL) counter'iui, kuris duomenis (start bitas ir 6 duomenu bitai) ishsiustu dviem laidais - clock ir data. clock palaikomas '0' kai niekas nesiunciama, kai clock=1, nuskaitomas data
Cia programos dalis atsakinga uz duomenu ishsiuntima:
Citata:

port (
.
.
count_clk : out std_logic; -- clock out
count_data : out std_logic -- data out
);
architecture .....
.
.
signal count_drive : std_logic_vector(5 downto 0);
.
.
.............
send_data: process(count_clk, count_data)
begin

count_data <= count_drive (0);
wait for 10 ns;
count_clk <= '1';
wait for 10 ns;

count_clk <= '0';
count_data <= count_drive (1);
wait for 10 ns;
count_clk <= '1';
wait for 10 ns;

count_clk <= '0';
count_data <= count_drive (2);
wait for 10 ns;
count_clk <= '1';
wait for 10 ns;

count_clk <= '0';
count_data <= count_drive (3);
wait for 10 ns;
count_clk <= '1';
wait for 10 ns;

count_clk <= '0';
count_data <= count_drive (4);
wait for 10 ns;
count_clk <= '1';
wait for 10 ns;

count_clk <= '0';
count_data <= count_drive (5);
wait for 10 ns;
count_clk <= '1';
wait for 10 ns;
count_clk <= '0';
count_data <= '0';


end process send_data;


count_drive yra tai kas "suskaiciuota"

sitam "send_data:process" meta klaidas:

"Wait for statement unsupported"
"statement WAIT not allowed in a process with a sensitivity list"

Ka ne taip darau?
Kaip reiktu teisingai tokiu budu ishsiusti duomenis?

_________________
I GAVE UP DRINKING, SMOKING AND SEX!
it was the worse 15 minutes of my life!
 Pagalbos su CPLD programavimu
PranešimasParašytas: 2009 12 20, 16:33 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
wait for galioja tik simuliacijoje, kada simuliuoji pacio cpld veikima ir kompas nustato laika. Pats CPLD nezino, kiek laiko trunka tas tavo 10ns, todel tu turi pasidaryt clock divider'i iki 10ns ir skaiciuoti su tuo naujuoju clocku tiek periodu, kol bus 10ns.

Neaisku koks clockas uzkabintas pas tave.

P.S. Kokiu greiciu cia duomenys turi vaiksciot, kad toki perioda pasirinkai? Smile
 Pagalbos su CPLD programavimu
PranešimasParašytas: 2009 12 20, 17:18 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Chulio
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Socrates rašo:
wait for galioja tik simuliacijoje, kada simuliuoji pacio cpld veikima ir kompas nustato laika. Pats CPLD nezino, kiek laiko trunka tas tavo 10ns, todel tu turi pasidaryt clock divider'i iki 10ns ir skaiciuoti su tuo naujuoju clocku tiek periodu, kol bus 10ns.

Neaisku koks clockas uzkabintas pas tave.

................................ Smile

Aisku.
Kitos programos dalies veikimas planuojamas ant 50MHz isorinio clock'o.

Socrates rašo:
..........................................

P.S. Kokiu greiciu cia duomenys turi vaiksciot, kad toki perioda pasirinkai? Smile

greicio uztenka ir labai mazo. Perioda pasirinkau bele koki, pabandymui ar pavyksta programa gerai surasyt.
Programa, kurios dalis parodyta, skirta ishsiusti 6 bitus deshifratoriui.
Pvz.
data - "010111"
kai ivykdoma salyga "count up"
data<= data+1
kai ivykdoma salyga "count down"
data<= data-1

Duomenu greitis - kad akis neuzfiksuotu LED uzsidegimo uzdelsimo nuo pvz knopkes paspaudimo, vien zo mazas.
-------------------
reikia ishsiusti 6 bitus 2 laidais.
As bandziau parasyti programa tokiem 2 variantams:

1. Isorinio clk nenaudojant, su tokiu "ale" clock'u, kol vidiniai skaitliuko duomenys nesikeicia, clock'a palaikyt '0'.
Kai tik vidiniai skaitliuko duomenys pasikeicia,
* i "data" laida paduodama nulinio bito (count_drive(0)) reiksme,
*po to clock<=1,
*po to kazkoks uzdelsimas (kad deshifratorius be klaidu nuskaitytu duomenis),
*po to clock<=0
toliau eilutes pazymetos * kartojasi, kol perduodami visi 6 bitai
Desifratorius nuskaitineja, kai clock=1

2. Su isoriniu clk.
ishsiunciami duomenys keiciami kai clk 1->0
pradzioj "start" bitas, po to 6 counterio bitai. Duomenys ishsiunciami viena karta, po to data<=0, start<=0.
start<=1, kai ivykdoma count_up arba count_down

deshifratorius nuskaitineja kai clk 0->1, pradeda nuskaitineti nuo sekancio bito, kai gauna '1' i data
-------------------------
Vien zo, fantazavau graziai, bet nieko nesigavo....

Reikalas toks, kad reikia kuo paprastesniu budu ishsiusti 6 bitus 2 laidais.

_________________
I GAVE UP DRINKING, SMOKING AND SEX!
it was the worse 15 minutes of my life!
 Pagalbos su CPLD programavimu
PranešimasParašytas: 2009 12 20, 18:09 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Nu be isorinio clk tikrai nieko nesigaus, todel tinka antras variantas. Siulau pasidomet I2C interfeiso ant FPGA aprasymu, mananu daug kas paaisketu Wink

Keletas nuorodu:
UART
I2C
Xilinx member zone (reik registruotis)
 Pagalbos su CPLD programavimu
PranešimasParašytas: 2009 12 20, 19:00 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Chulio
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Pagal antra varianta (su isoriniu clk) buvau parases su "wait until", kazka tokio:
....
wait until clk='1' and clk'event ;
data <= count_drive(0);
wait until clk = '1';

sitos 3 eilutes kartojasi kiekvienam data bitui. Klaidas rode, kazka su wait funkcija.
kas cia negerai?

_________________
I GAVE UP DRINKING, SMOKING AND SEX!
it was the worse 15 minutes of my life!
 Pagalbos su CPLD programavimu
PranešimasParašytas: 2009 12 20, 19:11 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Chulio rašo:

wait until clk='1' and clk'event ;
data <= count_drive(0);
wait until clk = '1';

Kodas:

process(clk)
begin
if(clk'event and clk='1') then
data <= count_drive(0);
end if;
end process;


Tikiuosi supranti, kad situ atveju tau priskyrimas eis kiekviena clk eventa. Cia vidury dar reiktu iterpt if clk_div_counter=kazkokia_jau_pasiekta_reiksme ... ir tik tada daryt ta priskyrima.
 Pagalbos su CPLD programavimu
PranešimasParašytas: 2009 12 20, 20:30 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Chulio
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Socrates rašo:

.................
Tikiuosi supranti, kad situ atveju tau priskyrimas eis kiekviena clk eventa. .......................................


Nesijuok, jei nusisnekesiu.... as dar tik mokausi...

Pagal sito 033 eilutes paaiskinima, supratau kad:
clk'event and clk='1' - reiskia, kad clk is 0 keiciasi i 1
clk='1' and clk'event - reiskia, kad clk is 1 keiciasi i 0

gerai? blogai?


Socrates rašo:

.................
Cia vidury dar reiktu iterpt if clk_div_counter=kazkokia_jau_pasiekta_reiksme ... ir tik tada daryt ta priskyrima.


???

_________________
I GAVE UP DRINKING, SMOKING AND SEX!
it was the worse 15 minutes of my life!
 Pagalbos su CPLD programavimu
PranešimasParašytas: 2009 12 20, 21:18 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Chulio rašo:

Nesijuok, jei nusisnekesiu.... as dar tik mokausi...

Pagal sito 033 eilutes paaiskinima, supratau kad:
clk'event and clk='1' - reiskia, kad clk is 0 keiciasi i 1
clk='1' and clk'event - reiskia, kad clk is 1 keiciasi i 0

gerai? blogai?

Blogai Smile
Zodis event reiskia, kad ivyksta veiksmas. Is cia:
clk'event and clk='1' - reiskia, kad clk is 0 keiciasi i 1 (cia teisingai mastei)
clk'event and clk='0' - reiskia, kad clk is 1 keiciasi i 0

Nesu tikras ar VHDL kalboje yra atitikmuo, bet berods Verilog turi kitokia sintakse, kazkas panasaus i: always @posedge(clk)... (posedge - positive edge afaik)
Nera skirtumo, jei as pasakysiu AS IR TU arba TU IR AS? Smile

Socrates rašo:

.................
Cia vidury dar reiktu iterpt if clk_div_counter=kazkokia_jau_pasiekta_reiksme ... ir tik tada daryt ta priskyrima.


Jei darysi kaip aprasyta, tai ant kiekvieno clocko teigiamo fronto tau priskirs duomenis, kadangi tau reikia tai daryt tik kas pvz 10 clocko cikla, tai reikia daryt clock divideri. Jau kalbejom apie tai.
 Pagalbos su CPLD programavimu
PranešimasParašytas: 2009 12 20, 21:31 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Chulio
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Dekui uz kantrybe ir atsakymus, giliai miske keliais medziais sumazejo... Smile
Rytoj bandysiu kazka daryt.

_________________
I GAVE UP DRINKING, SMOKING AND SEX!
it was the worse 15 minutes of my life!
 Pagalbos su CPLD programavimu
PranešimasParašytas: 2009 12 20, 22:10 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Chulio
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Visgi rytdienos nesulaukiau... Cool
Surasiau taip:
Kodas:

if(count_clk'event and count_clk ='1') then
   count_data  <= start_bit;
   end if;
      
   if(count_clk'event and count_clk ='1') then
   count_data  <= count_drive (0);
   end if;
   
   if(count_clk'event and count_clk ='1') then   
   count_data  <= count_drive (1);
   end if;
   
   if(count_clk'event and count_clk ='1') then
   count_data  <= count_drive (2);
   end if;
   
   if(count_clk'event and count_clk ='1') then
   count_data  <= count_drive (3);
   end if;
   
   if(count_clk'event and count_clk ='1') then
   count_data  <= count_drive (4);
   end if;
   
   if(count_clk'event and count_clk ='1') then
   count_data  <= count_drive (5);
   end if;

Ar tai reiskia, kad sulig kiekvienu count_clk perejimu 0->1 bus pakeiciamas (priskiriami count_drive nuo 0 iki 5) dydis "count_data" ?

error'u neberodo, bet vat warning'u.... net skaiciuot tingisi...
[/quote]

_________________
I GAVE UP DRINKING, SMOKING AND SEX!
it was the worse 15 minutes of my life!
 Pagalbos su CPLD programavimu
PranešimasParašytas: 2009 12 20, 22:22 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Jep, reiskia visi siti procesai vyksta 50MHz greiciu.
Toliau... FPGA (ar tavo atveju CPLD), veikia ne kaip procas, visas komandas darydamas nuosekliai, o LYGIAGRECIAI, todel visos count_data reiksmes prisiskirs vienu metu ant to pacio clock fronto. Cia reikia uzkurt vadinama state machine. Ir isvis, tavasis CPLD veza 50MHz? Koks cia CPLD?
 Pagalbos su CPLD programavimu
PranešimasParašytas: 2009 12 20, 22:50 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Chulio
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Socrates rašo:
...........
Toliau... FPGA (ar tavo atveju CPLD), veikia ne kaip procas, visas komandas darydamas nuosekliai, o LYGIAGRECIAI, todel visos count_data reiksmes prisiskirs vienu metu ant to pacio clock fronto. ................
.........................

f**k, vel medziu padaugejo.....
Socrates rašo:
............................... Ir isvis, tavasis CPLD veza 50MHz? Koks cia CPLD?

XC9572xl

Ciuju spjausiu ant to serijinio duomenu perdavimo, kurio reikejo vien del koju trukumo deshifratoriaus cpld.... paprasciau bus papildomas cpld...

Paraleliniam duomenu perdavimui jau buvau surases counterio ir deshifratoriaus programas be jokiu error'u ar warning'u

_________________
I GAVE UP DRINKING, SMOKING AND SEX!
it was the worse 15 minutes of my life!
 Pagalbos su CPLD programavimu
PranešimasParašytas: 2009 12 20, 23:25 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Taigi daviau UART ir I2C pavyzdzius, uzkurk ir viskas Wink Ar su uC darysi, ar su PC rysi, viskam tiks!
 Pagalbos su CPLD programavimu
PranešimasParašytas: 2009 12 30, 09:42 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Chulio
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Na va, iskilo dar keletas klausimeliu....
1. Kaip priskirti pin'us nubraizius logine schema? As tikejausi, kad bus "assign pin" ar kazkas panasaus, bet gal cia kaip mandriau pavadinta?
Kaip tai padaryti VHDL kode viskas aisku.
2. Kodel neina paziuret "symbol info" savam projekte? Raso "symbol not found".... Atsidarius "example" viska rodo...
3. Kaip ten pavadintas shmito trigeris, ar tokio nera?
Kalba eina apie xilInx softa.

P.S. nezinau kaip kitiems, bet man ta programa kazkokia nesamoninga, ypac help'as. Nezinau, cia gal as per durnas, bet man ten atrodo viskas pernelyg sudetinga, t.y. yra daug visko, bet labai jau sunku surast ko reikia....

_________________
I GAVE UP DRINKING, SMOKING AND SEX!
it was the worse 15 minutes of my life!
 Pagalbos su CPLD programavimu
PranešimasParašytas: 2010 01 01, 17:32 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Chulio rašo:
Na va, iskilo dar keletas klausimeliu....
1. Kaip priskirti pin'us nubraizius logine schema? As tikejausi, kad bus "assign pin" ar kazkas panasaus, bet gal cia kaip mandriau pavadinta?
Kaip tai padaryti VHDL kode viskas aisku.
2. Kodel neina paziuret "symbol info" savam projekte? Raso "symbol not found".... Atsidarius "example" viska rodo...
3. Kaip ten pavadintas shmito trigeris, ar tokio nera?
Kalba eina apie xilInx softa.

P.S. nezinau kaip kitiems, bet man ta programa kazkokia nesamoninga, ypac help'as. Nezinau, cia gal as per durnas, bet man ten atrodo viskas pernelyg sudetinga, t.y. yra daug visko, bet labai jau sunku surast ko reikia....


1. Apie ISE WebPack sneki? As schemu nepaisau, viska rasau VHDL. Vienokiu ar kitokiu atveju visas priskyrimas yra *.ucf faile. Ji gali redaguot kad ir notepadu

2. Nezinau apie kokius simbolius eina kalba. Jei ten jie paisant schema, tai as tada negaliu atsakyt Smile

3. Nezinau. Reik rasyt savo trigeri matyt Smile

Visais atvejais siulau pasirinkt kalba ir daryt cpld dizaina su ja. VHDL ar Verilog tai cia jau pasirinkimo reikalas... Nors su VHDL eina 32bit float'us daryt... O jie dar ja vadina hardware description language Very Happy
Pradėti naują temą  Atsakyti į pranešimą Pereiti prie 1, 2  Toliau
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

GENERAL FINANCING BANKAS

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

Technologijos.lt

Buitinė technika ir elektronika internetu žemos kainos – Zuza.lt

www.esaugumas.lt – apsaugok savo kompiuterį!

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

„Deinavos baldai“ — šeimos baldai

FS 22 Tractors
Farming Simulator 19 Mods, FS 22 Maps, FS22 Mods
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS22 Trucks
VAT calculator
VAT number check, What is VAT, How much is VAT
Paskola internetu
Vartojimo paskola, paskola automobiliui, paskola būsto remontui
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope
FS22 Mods
FS22 Harvesters, FS22 Tractors Mods, FS22 Maps Mods
FS22 Mods
FS22 Maps,
FS22 Harvesters,
FS22 Tractors
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
Sims 4 Mods
Sims 4 CC Clothes,
Sims 4 Hair CC,
Sims 4 Skill Cheat
Optic sight
Binoculars for hunting elk,
Best compact binoculars,
Riflescope hunting
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Script hook v, Openiv, Menyoo
gta5mod.net
Farming Simulator 2019 Mods, FS22 Mods, FS22 Maps
farmingsimulator19mods.fr
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
Reklamos paslaugos
SEO sprendimai

www.addad.lt
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama