Písanie proti VHDL designu Pomocník

T

TERRYWU3

Guest
Vážení odborníci, chcem navrhnúť prepážky, ktorá bude závisieť na vstupe 8 bit zbernica. Ak je zbernica je "10011010", má počítadlo sekvencie je 1 -> 3 -> 4 -> 7 -> 1 -> 3 -> 4 -> 7 slučky. Ak je zbernica je "10000001", čítač sekvencie je 0 -> 7 -> 0 -> 7 ... slučka môj autobus je náhodné zmene. Mohli by ste prosím, daj mi poradiť, alebo referenčné informácie? Veľmi, veľmi Ešte raz vďaka!
 
Dobrý deň je táto hodnota 10011010 je vstup na začiatku boja ...... mi jasne
 
Ahoj, tu je kód: signál pult, next_counter: celé číslo od 0 do 7, proces (CLK, reset) začať if (reset = 0 "), potom proti
 
[Quote = nandhika] Dobrý deň je táto hodnota 10011010 je vstup na začiatku boja ...... mi jasne [/quote] sorry môj popis nejasne. Počiatočná hodnota čítača závisí od prvého bitu '1 'z autobusu. Ak je prvý bit 1 bit na 3, potom štartov hodnotu 3, ak v ďalšom bit 1 bit 6, potom druhý počítač hodnota je 6 ..... slučka pokračovať veľmi, veľmi vďaka ~
 
Vlastne to, čo popisujete, je sekvencer, nie pult, kde sa poradie určuje podľa vstupného vektora. Nižšie nájdete nejaký kód, ktorý vám môžu pomôcť k tomu, čo potrebujete. Môžete tiež skúsiť pridať ďalšie štátu, takže ak vstup = "00000000", MFŠ ide do neplatnom stave. Skontrolujte syntax, pretože nemám k dispozícii kompilátor v mojom PC v tejto chvíli. Budete musieť vyplniť kód štátu 12,3,4,5,6 a 7. knižnica IEEE, použitie ieee.std_logic_1164.all, použitie ieee.std_logic_unsigned.all, použitie ieee.std_logic_arith.all, osoba count_at_input je port (ČLK: v std_logic, - Hodiny RST: v std_logic, - asynchrónny reset nasledovné: v std_logic_vector (7 downto 0), - sekvencie Q: z std_logic_vector (2 downto 0) - výstup (počet)), koniec count_at_input, architektúra počítadlo count_at_input je signál Qp, Qn: std_logic_vector (2 downto 0), - súčasnosť a ďalší štát začne kombinačné: process (seq, QP) začne prípad Qp je, keď "000" => - Ak je dosiahnutá, Bit 0 je 1, ak (seq (1) = 1), potom - ak bit1 = 1, potom ďalšie count = 1 Qn
 
Tu je ešte jeden spôsob, ako ... kód je v Verilog .. Dúfam, že si to preložiť do jazyka VHDL!
Code:
 modul seq_counter (/ / počet výstupov, / / vstupy CLK, reset_n, nasledujúce), vstup CLK, reset_n, vstup [7:00] nasledujúce, výstup [02:00] počet, reg [02:00] počet; reg [07:00] seq_r, reg [07:00] maska, mask_nx, vodiče [07:00] mask_and_seq = maska a seq_r, reg [07:00] check_zero, drôtené nula = ~ | (check_zero) Vždy @ ( posedge CLK alebo negedge reset_n) začať if (reset_n) začína seq_r> 2, 2:! check_zero seq_r =>> 3, 3: check_zero seq_r =>> 4, 4: check_zero seq_r =>> 5, 5: check_zero seq_r => > 6, 6: check_zero seq_r =>> 7, 7: check_zero seq_r =>> 8; endcase konci endmodule / / seq_counter
som sa dôkladne testované!
 
Dobrý deň! U prvého sa porovnávať hodnotu autobusu s týmito hodnotami, s ktorými UR proti začína a toto porovnanie by sa malo uskutočniť vždy, keď ur autobusom ot zmeny hodnôt. Ak autobus hodnoty, ktoré sú rovnaké ako hodnoty, potom začať ur pult. Všetky tieto možné vykonať pomocou príkazu proces plz opravte ma, či sa mýlim a ide to vďaka Deepak
 

Welcome to EDABoard.com

Sponsor

Back
Top