Lūdzu palīdziet ....

L

LF_LF

Guest
Hey, visiem.
Esmu konstruējot VHDL kodu pulksteni dalītāju un tapas specifikācijas 2.
Man vajag, lai iedarbinātu 2 pins izmanto DE2 padome 1 pulksteni ciklā (auto sprūda nosaka pati pēc 1 pulksteni ciklā).
Tomēr man nav ne jausmas, kā pārvērst šo produkciju par manu pulksteni dalītāju, lai pulksteņa manu pin specifikāciju.Vai kāds lūdzu man palīdzēt?

Mans pulksteni dalītājs pārvērst 27MHz līdz 500KHz un man ir nepieciešams, lai iedarbinātu šos 2 piespraudes (pogas no DE2 padome), izmantojot 500kHz.
Manu kodu pin specifikācijas ir šādas:

process (clkin) --- Es domāju, ka mana problēma ir šeit!
sākt
ja A0 = "1" un (rising_edge (clkin)), tad
A0_out <= "1";
count1: = '1 ';
ja count1 = "1" un (rising_edge (clkin)), tad
A0_out <= '0 ';
count1: = '0 ';
beidzas, ja;
beidzas, ja;
gala procesa;

process (clkin)
sākt
ja convst = "1" un (rising_edge (clkin)), tad
convst_out <= "1";
count2: = "1";
ja count2 = "1" un (rising_edge (clkin)), tad
convst_out <= '0 ';
count2: = '0 ';
beidzas, ja;
beidzas, ja;
gala procesa;

 
ja vēlaties izmantot pulksteni?
Ja Jūs lietojat jebkādas FPGA izmantot DCM (xillinx) vai PLL (citiem) šāda veida rajons gatavs kodols būs tur nodaļa
.....
tāpēc, ka jums nav gatavojas saņemt precīzu 500k sadalot.

 
Man vajag, lai sinhronizē pulksteni manas DE2 padomes (Altera) no 27MHz līdz mana ADC (ADS7861 - 500Khz).Tā kā man ir nepieciešams, lai pārbaudītu ADC, tāpēc man tika lūgts konstruēta VHDL kodu DE2 klāja un savienojumu ar ADC testēšanai.Saskaņā ar datu lapā no ADC, divas ieejas nepieciešams iedarbināt par 1 pulksteni ciklu tikai tāpēc es mēģināju izveidot kodu, lai padarītu to iedarbinātu atpakaļ pēc 1 pulksteni cikla pati.

Jo tas ir mans pirmo reizi izmantot DE2 kuģa, man nav ideju, kādu funkciju tā ir šī kuģa (protams es zinu, mikroshēmas un to funkcijas saskaņā ar lietotāja rokasgrāmatu).
Man nav ne jausmas par PLL un DCM.Can kāds īsi paskaidro procedūru vai var ikviens rādīt jebkuru saiti vai dokumentu?

 
Problēma ir ļoti neskaidra.Jums nav pateikt, kur ADC ievade pulksteni nāk no, kāpēc jūs plānojat izmantot 27 MHz
FPGA pulksteni un par kuru ADC signālu Jūs WAN sinhronizēt.

I guess, problēma ir lasīšanas ADC sērijas datiem, ir jāveic 8 MHz biti pulksteni.

Rakstīšanai VHDL kodu, lūdzu, skatiet pamatstruktūru noteikumiem literatūras vai, piemēram, Altera Q.uartus VHDL veidnes.Nested
rising_edge () izteiksmes noteikti neradīs ko jūs mēģināt sasniegt.

 
Nu, mana ADC ievade pulksteni ir jānāk no Altera DE2 kuģa.Altera DE2 padome ir 3 pulkstenis ievadi, kas ir 27MHz, 50Mhz un SMA ārējo pulksteni ievadi.Tāpēc es izmantoju 27MHz. (Arī man nebija izvēlēties ārējos pulksteni ievade ir saistīts ar sarežģīto ēkas citu pulksteni ģenerators)

ADC ir precizēta ir 500Khz saskaņā ar datu lapu.Tāpēc es centos, lai sinhronizētu vai pārveidot 27MHz līdz 500 kHz.

Nu, par 8Mhz Jūs minējāt par to paziņoja, ka tā ir ārējā pulkstenis, Optinal 8Mhz bet saskaņā ar pin aprakstu, tas norāda uz šo pulksteni pin kontrole paraugu ņemšanas biežumu ar vienādojumu Clock = 16 * f (paraugs )....Nu, es guese 16 * (500kHz) = 8MHz.
Tad ir tā, ka es pārprast, ka man ir nepieciešams piegādāt 8 Mhz uz ADC laikā pulksteni pin nevis 500Khz?Atvainojiet, es esmu mazliet apmulsis.

Par kodu, es domāju, ka man ir nepieciešams nosūtīt atpakaļ kā es esmu tikai Newbie šo valodu programing.

 
Ja jūs vēlaties sasniegt 500 KS / s ātrumu, kas Jums piegādāt 8 MHz uz ADC.Tas ir visvairāk viegli palaist ADC datu receiption
8 MHz vai konstrukcijas vairākiem tā (piemēram, 16 vai 32 MHz), ir atkarīgs no kuras pulksteņi tiek izmantoti jūsu FPGA.Lai radītu tieši
Šajā biežums, jums ir izmantot PLL MegaFunction.

 
Paldies par FVM.

Par pulksteni.es zinu, kā iet jaudu pulksteni cikla uz nākamo procesu jau vēlāk. (es izlasīju MegaFubction PLL un es centīšos to)

Tomēr, es esmu saskaras sprūda problēmu.Es mēģināju izmantot pretēji izraisīt to 0 pēc 1 pulksteni ciklu, bet tas nedarbojas (pat es varu veicināt to veiksmīgi VHDL kodu, bet tas parāda konstanta 1 bez sprūda atpakaļ uz 0 vilnim stimulācija)

Mans kods ir:
Iepriekš pulksteni dalītājs kodiem, kas ir tādā pašā arhitektūrā

process (CLK)
sākt
ja reset = "1", tad
A0_out <= '0 ';
A1_out <= '0 ';

elsif (rising_edge (mux) un A0 = "1"), tad
count1 <= count1 1;
A0_out <= "1";
ja count1> 1, tad
A0_out <= '0 ';
count1 <= 0;
beidzas, ja;

elsif (rising_edge (mux) un A1 = "1"), tad
count2 <= count2 1;
count2 <= count2 1;
A1_out <= "1";
ja count2> 1, tad
A1_out <= '0 ';
count2 <= 0;
beidzas, ja;

beidzas, ja;
gala procesa;

 
Baidos, jums ir iet vairākus soļus atpakaļ, un uzzināt, kā VHDL darbi.

,

Tas ir aparatūras apraksts valodā,

atšķiras no procesuālo programmēšanas valodas kā C signālu nodošana, piemēram, izpaužas spēkā pēc pašreizējā pulksteni mala.

Tas var būt vieglāk domāt par nepieciešamo loģiku kā aparatūras shēmas un būvēt to no loģikas vārti, Flip flops, letes
un pāreju reģistriem.

 
Paldies visiem.
Man ir izveidot no jauna kopš pēdējās 1 aprunāt izmantot
Man vilnim šoreiz.Tomēr attiecībā pret uz convst, i saskaras dažas problēmas.Man vajag, lai radītu impulsu reizi 16 pulksteni cikliem, bet parādiet man 17 pulksteni cikliem.
Var kāds man palīdzēt to apskatīt šo.Man ir mēģinājuši skaits pulksteņa ciklu, ka es noteikti (ar tiesu un kļūda).Tas arī parāda nepareizu vilnimBIBLIOTĒKA IEEE;
izmantot IEEE.std_logic_1164.all;
izmantot IEEE.std_logic_arith.all;
izmantot IEEE.std_logic_unsigned.all;
BIBLIOTĒKA darbu;

vienība siggen ir
osta (
clkin: ar std_logic;
reset: ar std_logic;
convst: no std_logic;
A0: no std_logic
);
beigās siggen;

arhitektūra FPGA no siggen ir

signāls count1: vesels skaitlis diapazonā no 0 līdz 2;
signāls count2: vesels skaitlis intervālā no 0 līdz 15;

sākt
process (clkin)
sākt
ja reset = "1", tad
convst <= '0 ';
count1 <= 0;
A0 <= '0 ';
count2 <= 0;

elsif rising_edge (clkin), tad
ja count1 <1, tad
convst <= "1";
count1 <= count1 1;
cits convst <= '0 ';
A0 <= "1";
count2 <= count2 1;
ja count2 = 15, tad
count1 <= 0;
count2 <= 0;
beidzas, ja;

beidzas, ja;
beidzas, ja;

gala procesa;

beigās FPGA;
Atvainojiet, bet jums ir nepieciešams pieteikumvārds, lai skatītu šo arestu

 
Jūs esat skaitīšanas 17 valstīm, 1 stāvoklī count1 = 0 un 16 valstis, count2 = 0 .. 15.

Es neredzu mērķi, izmantojot divus skaitītājus.Vienkārši ir viens (skaitot 0 .. 15) un iegūt visas darbības no tā vērtības.Jūs varat
vēlaties izmantot gadījumu konstrukcijas vai paziņojumiem, kā vēlaties.Kā atkļūdošana mājienu: varat parādīt iekšējo signālus (piemēram, pret
lielumi) simulators.Jūs arī varat izmantot Q.uartus SignalTap II, lai veiktu aparatūras atkļūdošanu jūsu ķēdē.
Īpaši interesanti, ja saskarsme reālā ADC.

PS: Es redzu, ka jūs izmantojat laika simulāciju 100 MHz.Jums vajadzētu labāk izmantot 8 MHz, kā tas prasīts mikroshēma
kā arī pievērst uzmanību nepieciešamo setup un turiet reizes.Ir ieteicams noteikt CONVST pie kuriem, nevis
pieaug ievade pulksteni mala.

 
Paldies FVM.
Uz 100Mhz, es tikai vienkārši izmantojami, lai pārbaudītu mērķim.
Par 8MHz, tas ir 16 * 500kHz.Tomēr ķēdes pirms ADC (Connection: mehāniskie - strāvas pārveidotāju - instrumenti pastiprinātāji - ADC - DE2) ir 50Hz.Šajā aprēķinā, tas man ir nepieciešams rūpēties par curcuit, pirms kura ir 50 Hz (f paraugs)?Ja izmanto 50Hz, tas ir 800Hz tikai.

No diagnostikas, tas redzams, piemēram, convst ir sprūda uz falling_edge pat i wrote rising_edge manā kodu.Vai tas ir tāpēc, pulksteni kavēšanās?Ir tāds, ka jebkuru metodi / līdzekli Q'tus var novērst kavēšanos?

Hm, vēl viens.Var kāds sniegt man soļus, lai savstarpēji savienotu 2 blokus no dažādām VHDL failu?Es zinu, kā izveidot bloķēt saskaņā ar tiešsaistes lietotājiem tut bet tas nav let me know, kā es varu ievades bloks, kas ir saglabāts citā faila.Es mēģināju kopēt bloku un ielīmējiet to, bet tā aprunāt atrast failu, kad es gribu atvērt kodu no bloka.(I arī mēģinājusi pārlūkot no "ievietot simbolu, divreiz uzklikšķiniet uz shematisks bet arī aprunāt atrast fails)

Paldies uzlabotas.

 
Attiecībā uz paraugu ņemšanu likmes, ja ieejas signāls ir 50 Hz (visticamāk AC), jūs varētu vēlēties, lai paraugam to ievērojami augstāku likmi
, piemēram aprēķinātu RMS, harmonikas, whatsover.Tas ir atšķirīgs temats nav tieši saistītas ar galveno ADC FPGA interfeiss kods,
Es domāju.Ja jums ir nepieciešama tikai 50 Hz (vai, iespējams, 1 kHz) iztveršanas līmeni, jūs varētu izmantot dažādus ADC veidu.

Jā, tur ir apmēram 5 ns pulkstenim izejas kavējuma standarta FPGA.Tomēr, ja jūs avots ADC CLK un CONVST no
FPGA, relatīvā kavēšanās ir mazāks.Pie samērā neliels takts frekvenci 8 MHz, sākas darbs, izmantojot sistemātisku
FPGA uzvedību, bez kavēšanās korekcija.Izvēloties palielinās vai samazinās, pulksteni mala visticamāk pietiek.

Darbs ar komponentiem, un gadījumi ir tēma VHDL mācību grāmatu, tur ir daudz kas tur.

 

Welcome to EDABoard.com

Sponsor

Back
Top