UART met VHDL

L

lythanhthuan

Guest
Ik ben bezig om FPGA (spartan 3) en ik besloten om een eenvoudige vorm ik VHDL-code die stuurt naar de computer van willekeurige data, dan zal proberen toe te voegen die een deel dan extra iets, maar wat ik ook doe i couldnt beheren.plzz help me
Mijn code is volgende

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triest" border="0" />

Ik gebruikte geen pariteit en baudrate 9600.mijn board klok is 50 MHz)
Code:

IEEE bibliotheek;

IEEE.STD_LOGIC_1164.ALL gebruik;

IEEE.STD_LOGIC_ARITH.ALL gebruik;

IEEE.STD_LOGIC_UNSIGNED.ALL gebruik;UNISIM bibliotheek;

UNISIM.VComponents.all gebruik;entiteit belangrijkste is

generieke (baud: std_logic_vector (12 Spoorbreedtes 0): = "1010001011000"; - klok verdeler voor baudrate

clk_increment: std_logic_vector (12 Spoorbreedtes 0): = "0000000000001";

shift_increment: std_logic_vector (5 Spoorbreedtes 0): = "000001"

);

Port (sseg: uit std_logic_vector (3 Spoorbreedtes 0);

elkaar: van std_logic_vector (6 Spoorbreedtes 0);

tx: out std_logic;

RX: in std_logic;

CLK: in std_logic;

schakelaar: in std_logic);

Eind belangrijkste;Behavioral architectuur van de belangrijkste is

onderdeel OBUF_LVCMOS33 haven

(O: out std_logic;

Ik: in std_logic);

end component;

onderdeel IBUF_LVCMOS33 haven

(O: out std_logic;

Ik: in std_logic);

end component;

onderdeel ibufg haven

(O: out std_logic;

Ik: in std_logic);

end component;

onderdeel bufg haven

(I: in std_logic;

o: std_logic out);

end component;signaal s_sseg: std_logic_vector (3 Spoorbreedtes 0);

signaal s_switch: std_logic;signaal s_disp: std_logic_vector (6 Spoorbreedtes 0);

signaal s_rx, s_tx: std_logic;

signaal clk0: std_logic;

signaal baud_fixer: std_logic_vector (12 Spoorbreedtes 0): = "0000000000000";

signaal data_counter: std_logic_vector (5 Spoorbreedtes 0): = "000000";

signaal baud_generator: std_logic: = '1 ';

signaal bit_clock: std_logic;

signaal data_format: std_logic_vector (9 Spoorbreedtes 0);

signaal gegevens: std_logic_vector (7 Spoorbreedtes 0): = "01100001";

signaal data_to_send: std_logic: = '1 ';beginnensegcom: for i in het genereren van 0 tot 3

seg0: OBUF_LVCMOS33 map van de havens

(O => sseg (i),

I => s_sseg (i));

Eind genereren segcom;

switchcom: IBUF_LVCMOS33 map van de havens

(O => s_switch,

I => switch);

dispcom: for i in het genereren van 0 tot 6

disp0: OBUF_LVCMOS33 map van de havens

(O => display (i),

I => s_disp (i));

Eind genereren dispcom;

rxcom: IBUF_LVCMOS33 map van de havens

(O => s_rx,

I => rx);

txcom: OBUF_LVCMOS33 map van de havens

(O => tx,

I => s_tx);

clkcom: ibufg map van de havens

(O => clk0,

I => CLK);

bitgen: bufg map van de havens

(I => baud_generator,

o => bit_clock);s_sseg <= "1001";

s_tx <= data_to_send;

- Baud rate generator

proces (clk0)

beginnen

Als clk0 = '1 ', dan

Als baud_fixer <= dan baud

baud_fixer <= baud_fixer clk_increment;

anders

baud_fixer <= "0000000000000";

baud_generator <= niet baud_generator;

end if;

end if;

end proces;- Gegevens shifter

data_format (0) <= '0 ';

data_format (9) <= '1 ';

data_format (8 Spoorbreedtes 1) <= gegevens (7 Spoorbreedtes 0);

proces (bit_clock)

beginnen

Als s_switch = '0 ', dan

s_disp <= "0100100";

Als bit_clock = '1 'en vervolgens bit_clock'Event

Als data_counter <"001001" en vervolgens

data_to_send <= data_format (conv_integer (data_counter));

data_counter <= data_counter shift_increment;

elsif data_counter> = "001001" en data_counter <"011100" en vervolgens

data_counter <= data_counter shift_increment;

data_to_send <= data_format (9);

anders

data <= data "00000001";

data_counter <= "000001";

data_to_send <= data_format (0);

end if;

end if;

anders

data_to_send <= '1 ';

data_counter <= "000000";

s_disp <= "0111111";

end if;
 
Ik heb al eerder een verilog gedownload, maar ik vergat haar site, elke hoe hier is het, hoop dat het helpt
Sorry, maar je moet ingelogd zijn om deze bijlage weer te geven

 
Dankzij yasser_shoukry

Dit was zo ongeveer wat ik Neede.De belangrijkste. V-bestand ziet er vrij simpel - net wat ik zocht

~ B

 

Welcome to EDABoard.com

Sponsor

Back
Top