软件:Quartus
语言:VHDL
代码功能:
简单红绿灯设计
1、设计十字路口红绿灯
2、每条路均有红、黄、绿三种信号灯
3、信号灯按交通规则亮灭
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE2开发板验证,DE2开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 管脚分配
4. 程序编译
5. Testbench
6. 仿真图
部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; ENTITY traffic_light IS PORT ( clk_50M : IN STD_LOGIC; reset_n : IN STD_LOGIC; main_red : OUT STD_LOGIC;--主路灯 main_green : OUT STD_LOGIC; main_yellow : OUT STD_LOGIC; branch_red : OUT STD_LOGIC;--支路灯 branch_green : OUT STD_LOGIC; branch_yellow : OUT STD_LOGIC ); END traffic_light; ARCHITECTURE behave OF traffic_light IS SIGNAL clk_1Hz : STD_LOGIC := '0'; SIGNAL count : STD_LOGIC_VECTOR(31 DOWNTO 0) := "00000000000000000000000000000000"; SIGNAL main_green_time : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL main_yellow_time : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL branch_green_time : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL branch_yellow_time : STD_LOGIC_VECTOR(7 DOWNTO 0); TYPE State_type IS (main_green_state, main_yellow_state, branch_green_state, branch_yellow_state); -- 定义状态 SIGNAL State : State_Type:=main_green_state; -- 创建信号 SIGNAL main_green_cnt : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000001"; SIGNAL main_yellow_cnt : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000001"; SIGNAL branch_green_cnt : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000001"; SIGNAL branch_yellow_cnt : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000001"; BEGIN
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1211
阅读全文
707