用verilog HDL写的一个自行车里程计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模块5:译码显示模块,把数字显示在7段 LED数码管上
module xianshi2(led,clk,out); input clk; input [3:0] led; output out; reg [6:0] out; always @(posedge clk) begin case (led) 4'd0 : out<=1111110; 4'd1 : out<=0110000; 4'd2 : out<=1101101; 4'd3 : out<=1111001;
模块4:分位模块Байду номын сангаас把要显示的数字分开成一 位一位。
module xianshi(counter,led1,led2,led3,clk); input [7:0] counter; input clk; output led1,led2,led3; reg [3:0] led1,led2,led3; reg a; always @(posedge clk) begin led1<=counter/100; a<=counter%100; led2<=a/10; led3<=a%10; end endmodule
EDA设计题 设计题8—自行车里程与 设计题 自行车里程与 速度显示模块
姓名:罗中明 080400226 吕薇080400202
设计要求
1、有一个霍尔传感器安装在自行车的轮轴上,当车轮 、有一个霍尔传感器安装在自行车的轮轴上, 转过一圈时,霍尔传感器向系统发出一个脉冲信号; 转过一圈时,霍尔传感器向系统发出一个脉冲信号; • 2、设定每来一个脉冲信号,自行车行进 米。 、设定每来一个脉冲信号,自行车行进1.5米 • 3、模块能够实时显示自行车的车速和前进的里程,单 、模块能够实时显示自行车的车速和前进的里程, 位为M/S和KM,显示精度为 ; 位为 和 ,显示精度为M; • 4、可以有一个按键,清除当前的里程数,并可以预置 、可以有一个按键,清除当前的里程数, 里程数,当到达该数值时,模块有LED闪烁报警提示。 闪烁报警提示。 里程数,当到达该数值时,模块有 闪烁报警提示 •
模块3:报警模块,当目标里程和车行走距离 一样时,LED灯亮报警。
• • • • • • • • • • • • • • module baojing(counterche,counterxing,led,clk); input [7:0] counterche,counterxing; input clk; output led; reg led; always @(posedge clk) begin if (counterxing<=counterche) begin led<=1; end else led<=0; end endmodule
4'd4 : out<=0110011; 4'd5 : out<=1011011; 4'd6 : out<=1011111; 4'd7 : out<=1110000; 4'd8 : out<=1111111; 4'd9 : out<=1111011; endcase end endmodule
模块连接示意图
模块2:定目标里程模块。
module dc(djs,counter,sheding); input sheding,djs; output counter; reg [7:0] counter; always @(posedge sheding) begin if (djs==1) counter<=counter+1; else counter<=0; end endmodule
最后,感谢老师的悉心指导!
• 谢谢~
实验心得
• • • 实验前做好准备是非常重要的,特别是查 看一些相关资料。 具体编各部分程序时,一定要仔细认真, 特别各种语法,有些很容易出错。 这次EDA实践让我更深刻的了解了现代数 字电路系统设计相对于传统电子系统设计 的模式的优势,采用模块法自顶向下设计 的原则,一边设计一边调试,使系统的开 发速度更快
模块
模块1:霍尔元件模块,计数车轮圈数。 模块2:定目标里程模块。 模块3:报警模块,当目标里程和车行走距离 一样时,LED灯亮报警。 模块4:分位模块,把要显示的数字分开成一 位一位。 模块5:译码显示模块,把数字显示在7段 LED数码管上
模块1:霍尔元件模块,计数车轮圈数。
• • • • • • • • • • module x(hr,counter); input hr; output counter; reg [7:0] counter,a; always @(posedge hr) begin a<=a+15; counter<=a/10; end endmodule