赞
踩
名称:洗衣机控制器设计Verilog代码vivado Nexys4开发板(文末获取)
软件:vivado
语言:Verilog
代码功能:
洗衣机控制器设计要求
·设计一个电子定时器,控制洗衣机作如下运转定时启动→正转20秒→暂停10秒→反转20秒→暂停10秒,每个循环1分钟
按正计时方式用两个数码管显示正转、暂停丶反
转时间,同时用三只LED灯表示“正转
“反转”、“暂停”三个状态
用两个数码管显示洗涤的预置时间(分钟数)按倒计时方式对洗涤过程作计时显示,时间到停机,停机指示灯亮
洗涤过程由“开始”开关开始,设置“暂停”开关。
本代码已在 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
扫描文章末尾的公众号二维码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。