⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 light.vhd

📁 基于VHDL实现的十字路口交通灯功能
💻 VHD
字号:
library ieee;
use ieee.std_logic_1164.all;

entity light is
port
(clk:in std_logic;
 reset:in std_logic;
 hold:in std_logic;
 red1,red2,green1,green2,yellow1,yellow2:out std_logic;
 display1:out std_logic_vector(0 to 6);
 display2:out std_logic_vector(0 to 6);
 display3:out std_logic_vector(0 to 6);
 display4:out std_logic_vector(0 to 6));
end;

architecture b of light is
 
component fredevider is
port
(clkin:in std_logic;
 clkout:out std_logic);
end component fredevider;

component counter is
port
(clk:in std_logic;
hold: in std_logic;
reset: in std_logic;
num: buffer integer range 0 to 49);
end component counter;

component controller is
port
(clk:in std_logic;
hold:in std_logic;
num:buffer integer range 0 to 49;
a1,b1:out integer range 0 to 25;
red1,green1,yellow1:out std_logic;
red2,green2,yellow2:out std_logic;
shanshuo:out std_logic);
end component controller;

component fenwei is
port
(innum:in integer range 0 to 25;
 shiwei,gewei:out integer range 0 to 9);
end component fenwei;

component display is
port
(clk:in std_logic;
 shanshuo:in std_logic;
 num:in integer range 0 to 15;
 display:out std_logic_vector(0 to 6));
end component display;

signal clk1:std_logic;
signal num1:integer range 0 to 49;
signal numA,numB:integer range 0 to 25;
signal shiwei1,gewei1:integer range 0 to 9;
signal shiwei2,gewei2:integer range 0 to 9;
signal shanshuo1:std_logic;

begin
u1:fredevider port map(clkin=>clk,clkout=>clk1);
u2:counter port map(clk=>clk1,hold=>hold,reset=>reset,num=>num1);
u3:controller port map(clk=>clk1,hold=>hold,a1=>numA,b1=>numB,red1=>red1,green1=>green1,yellow1=>yellow1,red2=>red2,green2=>green2,yellow2=>yellow2,shanshuo=>shanshuo1,num=>num1);
u4:fenwei port map(innum=>numA,shiwei=>shiwei1,gewei=>gewei1);
u5:fenwei port map(innum=>numB,shiwei=>shiwei2,gewei=>gewei2);
u6:display port map(clk=>clk1,shanshuo=>shanshuo1,num=>shiwei1,display=>display2);
u7:display port map(clk=>clk1,shanshuo=>shanshuo1,num=>gewei1,display=>display1);
u8:display port map(clk=>clk1,shanshuo=>shanshuo1,num=>shiwei2,display=>display4);
u9:display port map(clk=>clk1,shanshuo=>shanshuo1,num=>gewei2,display=>display3);

end b;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -