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
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