名称:洗衣机控制器设计Verilog代码vivado? Nexys4开发板
软件:vivado
语言:Verilog
代码功能:
洗衣机控制器设计要求
设计一个电子定时器,控制洗衣机作如下运转定时启动→正转20秒→暂停10秒→反转20秒→暂停10秒,每个循环1分钟。
按正计时方式用两个数码管显示正转、暂停、反转时间,同时用三只LED灯表示“正转”、“反转”、“暂停”三个状态。
用两个数码管显示洗涤的预置时间(分钟数)按倒计时方式对洗涤过程作计时显示,时间到停机,停机指示灯亮。
洗涤过程由“开始”开关开始,设置“暂停”开关。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在?Nexys4开发板验证,?Nexys4开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 管脚约束
4. 程序编译
5. RTL图
6. Testbench
7. 仿真图
7.1 整体仿真图
7.2 div_to_1K模块
7.3 div_to_1模块
7.4 control模块
7.5 display模块
部分代码展示:
//testebnch module?wash_machine_tb(); reg?clk;//100MHz reg?key_add;//加按键,设置时间 reg?key_sub;//减按键,设置时间 reg?key_start;//启动按键 reg?key_stop;//暂停按键,按下高电平 reg?key_reset;//复位按键 wire?D1;//正转 wire?D2;//反转 wire?D3;//暂停 wire?end_led;//结束指示灯 wire?[7:0]?bit_select;//数码管位选 wire?[7:0]?seg_select;//数码管段选 wash_machine?i_wash_machine( .?clk???????(clk???????),//100MHz .?key_add???(key_add???),//加按键,设置时间 .?key_sub???(key_sub???),//减按键,设置时间 .?key_start?(key_start?),//启动按键 .?key_stop??(key_stop??),//暂停按键,按下高电平 .?key_reset?(key_reset?),//复位按键 .?D1????????(D1????????),//正转 .?D2????????(D2????????),//反转 .?D3????????(D3????????),//暂停 .?end_led???(end_led???),//结束指示灯 .?bit_select(bit_select),//数码管位选 .?seg_select(seg_select)?//数码管段选 ); initial?begin key_add??=0;//加按键,设置时间 key_sub??=0;//减按键,设置时间 key_start=0;//启动按键 key_stop?=0;//暂停按键,按下高电平 key_reset=1;//复位按键 #10000; key_reset=0; #10000; key_start=1;//启动按键 #10000; key_start=0; #10000; #300000; key_stop=1;//暂停按键 #10000; key_stop=0; #10000; #200000; key_start=1;//启动按键 #10000; key_start=0; #10000; end always?begin clk=0; #5; clk=1; #5; end endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=470
274