软件: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
阅读全文
555