名称:洗衣机控制器设计VHDL代码Quartus仿真(文末获取)
软件:Quartus
语言:VHDL
代码功能:
务及要求
CPLD为复杂可编程逻辑器件,通过EDA技术对其进行编程,可将一个较复杂的数字系统
集成于一个芯片中,制成专用集成电路芯片,并可随时在系统修改其逻辑并最终完成电路的编程调试。具体要求如下
1.设计一个电子定时器,控制洗衣机作如下运转:定时启动→正转2分→暂停
1分→反转2分→暂停1分定时未到回到正转2分→暂停1分....
定时到则停止
2若定时到,则停机发出指示信号
3.用BCD码显示洗涤的预置时间(分钟数)按倒计时方式对洗涤过程作计时显示
到时间到停机;洗涤过程由:“开始”信号开始
4.三只输出表示“正转”,“ 反转”,“暂停”三个状态
洗衣机仿真
1.工程文件
2.程序文件
3.程序编译
4.RTL图
5.testbench
6.仿真图
部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; ENTITY washing_machine IS PORT ( clk_in : IN STD_LOGIC;--1Hz start_key : IN STD_LOGIC;--启动按键 led : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);--正转,反转,暂停 end_led : OUT STD_LOGIC;--洗衣结束信号 minute_Tens : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--分钟十位BCD码 minute_Ones : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)--分钟个位BCD码 ); END washing_machine; ARCHITECTURE behaveral OF washing_machine IS component washing_state IS PORT ( clk_in : IN STD_LOGIC;--1Hz start_key : IN STD_LOGIC;--启动按键 led : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);--正转,反转,暂停 end_led : OUT STD_LOGIC;--洗衣结束信号 time_out : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--分钟时间 ); END component; --二进制转BCD码 component BCD IS PORT ( clk : IN STD_LOGIC; binary : IN STD_LOGIC_VECTOR(7 DOWNTO 0);--二进制输入 Tens : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--十位 Ones : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)--个位 ); END component; signal time_out:STD_LOGIC_VECTOR(7 DOWNTO 0);--分钟时间 BEGIN --洗衣机状态控制模块 U_washing_state:washing_state PORT MAP( clk_in =>clk_in,--1Hz start_key =>start_key,--启动按键 led =>led,--正转,反转,暂停 end_led =>end_led,--洗衣结束信号 time_out =>time_out--分钟时间 ); --二进制转BCD码 U_BCD: BCD PORT MAP( clk =>clk_in, binary =>time_out,--二进制输入 Tens =>minute_Tens,--十位 Ones =>minute_Ones--个位 ); END behaveral;
源代码
扫描文章末尾的公众号二维码