problema UART imtuvas kodas ............

M

mkanimozhivlsi

Guest
Labas,
Tai mano UART imtuvas kodasBiblioteka IEEE;
naudoti ieee.std_logic_1164.all;Subjektas uart_rx yra
Uostas (
bclk, RST: In std_logic;
RxD: in std_logic;
data_rdy: iš std_logic;
data_out: iš std_logic_vector (7 downto 0));
Pabaiga subjektas;

Architektūra arch_uart_rx iš uart_rx yra

tipo narė (Idel, start_bit, bit0, bit1, bit2, bit3, bit4, bit5, bit6, bit7, stop_bit);
signalas PS, NJ: narė;
signalas data_buff: std_logic_vector (9 downto 0);

pradėti

procesas (bclk, RST)
pradėti
if (RST = '0 '), tada
PS <= Idel;
data_out <= (Kita => '0 ');
elsif (bclk = '1 'ir bclk'event), tada
PS <= ns;
end if;
galutinio proceso;procesas (PS, RxD)
pradėti
atveju (PS), yra

kai Idel =>
data_out <= (Kita => '0 ');
data_rdy <= '0 ';

if (RxD = '1 ') then
N <= start_bit;
kitas
N <= Idel;
end if;

kai start_bit =>
data_out <= (Kita => '0 ');
data_buff (0) <= RxD;
data_rdy <= '0 ';
if (RxD = '0 '), tada
N <= bit0;
kitas
N <= Idel;
end if;

kai bit0 =>

data_out <= (Kita => '0 ');
data_rdy <= '0 ';
data_buff (1) <= RxD;
N <= bit1;

kai bit1 =>

data_out <= (Kita => '0 ');
data_rdy <= '0 ';
data_buff (2) <= RxD;
N <= bit2;

kai bit2 =>
data_out <= (Kita => '0 ');
data_rdy <= '0 ';
data_buff (3) <= RxD;
N <= bit3;

kai bit3 =>
data_out <= (Kita => '0 ');
data_rdy <= '0 ';
data_buff (4) <= RxD;
N <= bit4;

kai bit4 =>
data_out <= (Kita => '0 ');
data_rdy <= '0 ';
data_buff (5) <= RxD;
N <= bit5;

kai bit5 =>
data_out <= (Kita => '0 ');
data_rdy <= '0 ';
data_buff (6) <= RxD;
N <= bit6;

kai bit6 =>
data_out <= (Kita => '0 ');
data_rdy <= '0 ';
data_buff (7) <= RxD;
N <= bit7;

kai bit7 =>
data_out <= (Kita => '0 ');
data_rdy <= '0 ';
data_buff (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Vėsus" border="0" />

<= RxD;
N <= stop_bit;

kai stop_bit =>

data_buff (9) <= RxD;
if (RxD = '1 ') then
data_out <= data_buff (8 downto 1);
data_rdy <= '1 ';
N <= Idel;
kitas
data_out <= (Kita => '0 ');
end if;

pabaigos atveju;
galutinio proceso;
pabaigos architektūra;Aš nežinau, kas atsitiko šį kodą, tai veikia gerai, tačiau jis nebus tinkamai produkcija Wat įvesties gautas, tai rodo "X" Dor vertes, gautas kaip loginė 1 d., logiška 0 nic nie rodomi teisingai, aš ne y, prašome kažkas man padėti išspręsti šią problemą

linkėjimai
kanimozhi.m

 
jūs imituoti kodą naudojant ModelSim arba ActiveHDL?

Jei ne, tuomet prašom modeliuoti ir derinti savo kodą ...Skelbimas po 1 minučių:Gal vieną patarimą:
Kas bit išsiuntė pirmuosius?Kas bitų (MSB ir LSB), kaip tikimasi?

 
Jūsų kodas klaida yra ta, kad šie du procesai yra vairavimo "data_out" signalo.Turėtumėte pereiti Reset logika "data_out" nuo pirmos procesą, antra, kad "data_out" turės tik vieną vairuotoją.

 
Gal vieną patarimą:
Kas bit išsiuntė pirmuosius?Kas bitų (MSB ir LSB), kaip tikimasi?

 
Thank u Ringo, dabar jiems gauti teisingą produkcija

reagrds
kanimozhi.M

 

Welcome to EDABoard.com

Sponsor

Back
Top