软件:Quartus
语言:Verilog
代码功能:
汽车速度表设计
设计一个汽车速度表。车轮每转一圈会产生一个脉冲,每个脉冲代表1米的距离,根据单位时间的脉冲数可推算出汽车的速度。
要求:
(1)模拟产生车轮运转产生的脉冲信号并对其计数,用按键选择脉冲信号的不同频率;
(2)每隔10秒读取一次脉冲计数器,并据此计算车速;
(3)用数码管显示车速,单位Km/h;
(4)给出超速警告。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. Testbench
6. 仿真图
整体仿真图
控制模块仿真图
速度计算模块
显示模块
超速报警模块
部分代码展示:
//汽车速度表 module?Speedometer( input?clk,//输入时钟 input?pulse,//传感器脉冲信号,每个脉冲1米 output?beep,//超速报警 output?[5:0]?bit_select,//数码管位选 output?[7:0]?seg_select//数码管段选 ); wire?clk_en; wire?latch; wire?rst; wire?[16:0]?speed_num;//输出速度值。XXX.XXKM/h //控制模块,输出控制信号 div?i_div( .?clk(clk),//输入时钟1000Hz .?clk_en(clk_en),//输出10s使能信号 .?latch(latch),//输出锁存信号 .?rst(rst)//输出清零 ); //速度计算模块 speed?i_speed( .?clk(clk),//输入时钟1000Hz .?pulse(pulse),//传感器脉冲信号,每个脉冲1米 .?clk_en(clk_en),//输出10s使能信号 .?latch(latch),//输出锁存信号 .?rst(rst),//输出清零 .?speed_num(speed_num)//输出速度值。XXX.XXKM/h ); //数码管显示模块 display?i_display( .?clk(clk), .?speed_num(speed_num),//输出速度值。XXX.XXKM/h .?bit_select(bit_select),//数码管位选 .?seg_select(seg_select)//数码管段选 ); //超速报警模块 alarm?i_alarm( .?clk(clk),//输入时钟1000Hz .?beep(beep),//超速报警 .?speed_num(speed_num)//输出速度值。XXX.XXKM/h ); endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=412
阅读全文
429