magpakita ng isang salita sa "Virtex 4" display (eg: VHDL)

D

dollard

Guest
Ako sa aking ikalawang buwan ng pag-aaral ng VHDL at ngayon ay gusto kong magkaroon ng isang programa sa VHDL gamit 8bit LCD display (virtex 4).

Maaari isang tao masiyahan tumulong, na may isang programa na maaaring magpakita ng isang salita sa "Virtex 4" display (eg: VHDL).

salamat.

 
Hello dollard,

Virtex4 ay isang maliit na tilad, isang FPGA, at ito ay hindi magkaroon ng anumang display.Siguro iyong mga lupon na nagngangalang ....ay may isang display nakalakip sa virtex4 maaari mong gamitin upang ipakita ang mga salita.

Magkaroon ng isang tumingin sa mga
http://www.opencores.org/project, LCD
http://www.opencores.org/project, graphicallcd

 
Ko karagdagan, kung mag-refer sa iyo sa isang Xilinx o ikatlong partido Development Kit, mayroon silang code sa halimbawa na nagpapakita kung paano gamitin ang mga resources sa board.

 
Kung gagamitin mo ML40x board maaari mong gamitin ang Microblase CPU.Sa Microblaze makakahanap ka ng mga proyekto na gumagana sa LCD.Kung kailangan mo ng gamitin ang VGA - hanapin ka core para sa mga ito na gawain tulad ng karagdagan bahagi ng Microblaze.

 
salamat sa inyong tulong.
gawin po kayo ay mas mahusay na idee?
ako Ako'y isa eg.but hindi ito gawin ng trabaho mit ang aking Virtex-4 LC sistema ng board.Added pagkatapos ng 5 minuto:ako may LCD initialisation.Nown ako magkulang sa sumulat (VHDL) sa LCD.

salamat.Library ieee;
PAGGAMIT ieee.std_logic_1164.ALL;
Entity lcd_controller AY
Port (
clk: SA STD_LOGIC; - sistema ng orasan
reset_n: SA STD_LOGIC; - aktibong mababang reinitializes LCD
lcd_enable: SA STD_LOGIC; - latches data sa LCD magsusupil
lcd_bus: SA STD_LOGIC_VECTOR (9 DOWNTO 0); - data at kontrolin ang mga senyas
busy: Out STD_LOGIC; - LCD magsusupil abala / idle ng feedback
RW, PHP, e: Out STD_LOGIC; --read/write, setup / data, at paganahin ang mga senyas para sa LCD
lcd_data: Out STD_LOGIC_VECTOR (7 DOWNTO 0)); - data signal para sa LCD
END lcd_controller;

Architecture magsusupil NG lcd_controller AY
TYPE Control IS (power_up, magpasimula, handa na, send_data);
Signal estado: control;
Simulan
PROSESO (clk)
Ang variable na clk_count: Saklaw ng Integer 0 SA 2,500,000; - orasan kaganapan counter para sa timing
Simulan

KUNG (clk'EVENT at mga clk = '1 ') at pagkatapos ay
KASO AY ng estado
- maghintay ng 50 ms para masiguro Vdd ay nabuhay at hingin LCD maghintay ay nagkakilala
KAPAG power_up =>
busy <= '1 ';
KUNG (clk_count <2500000) Pagkatapos - maghintay ng 50 ms
clk_count: = clk_count 1;
estado <= power_up;
Kung hindi
clk_count: = 0;
PHP <= '0 ';
RW <= '0 ';
lcd_data <= "00110000";
estado <= magpasimula;
END KUNG;
- cycle sa pamamagitan ng initialization sequence
KAPAG magpasimula =>
busy <= '1 ';
clk_count: = clk_count 1;
KUNG (clk_count <500) Pagkatapos - function set
lcd_data <= "00111100";
e <= '1 ';
estado <= magpasimula;
ELSIF (clk_count <3000) Pagkatapos - maghintay ng 50 sa amin
lcd_data <= "00000000";
e <= '0 ';
estado <= magpasimula;
ELSIF (clk_count <3500) Pagkatapos - ipakita sa / off control
lcd_data <= "00001100";
e <= '1 ';
estado <= magpasimula;
ELSIF (clk_count <6000) Pagkatapos - maghintay ng 50 sa amin
lcd_data <= "00000000";
e <= '0 ';
estado <= magpasimula;
ELSIF (clk_count <6,500) Pagkatapos - ipakita ang malinaw
lcd_data <= "00000001";
e <= '1 ';
estado <= magpasimula;
ELSIF (clk_count <106500) pagkatapos - maghintay ng 2 ms
lcd_data <= "00000000";
e <= '0 ';
estado <= magpasimula;
ELSIF (clk_count <107000) pagkatapos - entry mode set
lcd_data <= "00000110";
e <= '1 ';
estado <= magpasimula;
ELSIF (clk_count <110000) pagkatapos - maghintay ng 60 sa amin
lcd_data <= "00000000";
e <= '0 ';
estado <= magpasimula;
Kung hindi
clk_count: = 0;
busy <= '0 ';
estado <= handa;

END KUNG;
- maghintay para sa mga paganahin ang signal at pagkatapos trangka sa pagtuturo
KAPAG handa =>
KUNG (lcd_enable = '1 ') at pagkatapos ay
busy <= '1 ';
PHP <= lcd_bus (9);
RW <= lcd_bus (

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

;
lcd_data <= lcd_bus (7 DOWNTO 0);
clk_count: = 0;
estado <= send_data;
Kung hindi
busy <= '0 ';
PHP <= '0 ';
RW <= '0 ';
lcd_data <= "00000000";
clk_count: = 0;
estado <= handa;
END KUNG;
- ipadala ang pagtuturo sa LCD
KAPAG send_data =>
KUNG (clk_count <2500) at pagkatapos ay
busy <= '1 ';
KUNG (clk_count> 100) pagkatapos ay
e <= '0 ';
Kung hindi
e <= '1 ';
PHP <= lcd_bus (9);
RW <= lcd_bus (

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

;
lcd_data <= lcd_bus (7 DOWNTO 0);
END KUNG;
clk_count: = clk_count 1;
estado <= send_data;
Kung hindi
clk_count: = 0;
busy <= '0 ';
estado <= handa;
END KUNG;
END KASO;
- i-reset
KUNG (reset_n = '0 ') at pagkatapos ay
estado <= power_up;
END KUNG;
END KUNG;
END PROSESO;
END magsusupil;

 

Welcome to EDABoard.com

Sponsor

Back
Top