Kaip sukelti užtruks išėjimo iš jungiklio (usingFPGA VHDL)

P

Peter_L

Guest
Hello everyone.Aš stengiuosi padaryti LED, kad atidėtas (1 sekundes), įjungimo / išjungimo jungiklis atsakas į kurią vykstama toggled.Kaip pereiti apie kuriant šį terminą naudojant VHDL?Aš šiuo metu naudoja Spartan3a plėtros taryba.

Aš galvojau naudoti "Ciklas" gali sukelti vėlavimą, tačiau aš nesu įsitikinęs, jei tai yra tinkama, arba geriausia tai daryti su FPGA.

 
Labas,

skirtingai nuo iki, už linijos neveiks.

Kodas

Biblioteka IEEE;

naudoti ieee.std_logic_1164.all;subjektas delay_cnt yra

uostas

(

CLK: in std_logic;

SW: į std_logic;

LED: iš std_logic

)

pabaigos subjektas;Architektūra RTL dėl delay_cnt yra

nuolatinis MAX_COUNT: integer: = 50e6 - 1 s su 50 MHz clock

signalas Skaitliukas: sveikasis skaičius nuo 0 iki MAX_COUNT;

signalas sw_del: std_logic;pradėti

procesas (CLK)

pradėti

jei rising_edge (CLK), tada

jei sw_del = sw tada

counter <= MAX_COUNT;

elsif counter / = 0 THEN

counter <= Counter - 1;

kitas

sw_del <= SW;

end if;

end if;

galutinio proceso;

vadovaujama <= sw_del;

pabaigos RTL;
 
Štai dar vienas metodas.Jungiklis signalas eina per vienos sekundes-line pastatytas iš 48 bitų poslinkio registrą važiuojant maždaug 48 Hz dažniu.Galite spustelėti greitai įjungti ir išjungti, ir šie veiksmai bus rodomas LED maždaug vienos sekundės vėliau.ISE įgyvendina perėjimą registrai labai kompaktiškas kaip SRL16 Pirmykštė.

Aš nekalbu VHDL labai gerai (gaila!), Bet gal tu gali skaityti šį Verilog.
PIN vietose ir laikrodžio dažnis yra skirtos įvairių lenta, Xilinx / Digilent Spartan-3 Starter Kit.
Kodas

modulis viršų (CLK, switch, LED);

(* Loc = "T9", period = "50 MHz" *) įvesties CLK;

(* Loc = "F12" "*) įvesties jungiklis;

reg [19:0] count = 0;

reg [46:0] sr = 0;

(* Loc = "K12" *) produkcija reg LED = 0;visada @ (posedge CLK) Pradžia

count <= count 1; / / 50 MHz / 2 ^ 20 = 47,68 Hz

if (count == 0)

(LED, SR) <= (LED, SR, perjungti) / / switch kerta 48-bitų poslinkio registrą, LED

pabaiga

endmodule
 
Hello ..
(LED, SR) <= (LED, SR, perjungti) / / switch kerta 48-bitų poslinkio registrą, LED

kaip aukščiau pareiškimas dirba pamaininį registruotis?
nėra perėjimo operatorius THT pareiškimą ..

pataisyti mane jei aš neteisus ..
ačiū ..

 
bit sąryšis ir priskyrimo pasikeitė bitų pozicijos dirba pamaininį čia

 
Pristatysime for a moment, kad "SR" turi tik aštuoni bitai.

10-bit input žodis yra perkeltos į 9-bit output žodis:
Kodas

(LED, sr7, sr6, SR5, sr4, SR3, SR2, SR1, sr0, iešmų) 10-bit input žodis

| | | | | | | | |

| | | | | | | | |

(LED, sr7, sr6, SR5, sr4, SR3, SR2, SR1, sr0) 9-bit output žodis
 

Welcome to EDABoard.com

Sponsor

Back
Top