《数字跑表电路设计与实现.docx》由会员分享,可在线阅读,更多相关《数字跑表电路设计与实现.docx(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数字跑表电路设计与实现实训7:数字跑表设计与实现1深圳职业技术学院Shenzhen Polytechnic实训(验)报告Training Item编制部门:电信学院编制人:温国忠 学生姓名:郭天生编制日期工程编号工程名称训练对象学时07数字跑表设计与实现微电子技术专业8 Item No. Item Class Time课程名称 教材 可编程逻辑器件应用CPLD/FPGA应 用技术 Course Textbook1 .熟练使用Quartus II,掌握整个CPLD/FPGA开发流程,目的2.掌握分频、计数、显示控制模块的Verilog HDL设计方法,Objective 3,系统层次化设计方法
2、实训7数字跑表电路设计与实现 一、实训设备、工具与要求1(实训设备、工具PC电脑、FPGA开发系统、Quartus II应用软件。2(实训要求?每位学生独立完成工程的制作并撰写实训报告;?工程制作完成后由制作者按“验收标准”测试功能与参数,指导教师验收并 登记成绩;4bl001:led二default : led=7,bz;endcaseendendmodule实训7:数字跑表设计与实现75.数字跑表顶层电路设计Verilog HDL设计module paobiao (elk, reset, pause, scan, led);input elk, reset, pause; output 5
3、:0scan;output 6:0led;wire 5:0scan;wire 6:0led;wire f lagl, f lag2, clkOOl; wire 3:0ms_l, ms_h, s_l, s_h, m_l, m_h;clk div U0 (. clk(clk),.clkOOl(clkOOl);ms UI (. clk(clkOOl),.reset(reset), pause(pause), flagl(flagl),.ms_h(ms_h), ms_l(ms_l);s U2 (. flagl (flagl),.reset(reset), pause(pause),.flag2(fla
4、g2), s_h(s_h),.s_l(s_l);m U3 (. flag2(flag2),.reset(reset), pause(pause), m_h(m_h),. m_l(m_l);xshi U4(. clkOOl(clkOOl),.ms_h(ms_h), ms_l(ms_l),.s_h(s_h), s_l (s_l), m_h(m_h),.m l(m_l), scan(scan),.led(led);endmodule五、验收标准1)程序运行正常;2)电路功能仿真正确3)FPGA下载编程,硬件调试;4)实验改进及建议实训7:数字跑表设计与实现8?工程经指导教师验收后,由学生将全部实验设
5、备整理后交指导教师验收并登 记;?实训结束后1周内交实训报告。二、实训涉及的基本知识1.举例说明分频器电路的一般设计方法,1、2的整数次幕分频设计;2、偶数电路分频设计;3、占空比为任意数的分频设计;4、奇数电路分频设计等;2,为什么分、秒、百分秒计数采用BCD码编码,为了保持分秒百分秒位的长度的一致,利于后面的显示设计。三、实训综合电路实训7:数字跑表设计与实现2请画出数字跑表电路设计框图四、实训步骤1.阅读Altera Cyclongll开发系统用户手册,画出数字跑表电路连接引脚。信号引脚2,分频器电路Verilog HDL设计 module clk_div(clk, clkOOl);in
6、put elk;output clkOOl;reg clkOOl;reg 17:0cnt001;always(posedge elk)beginif(cnt001=18 d262143)begincnt001=18, dO;clkOOKclkOOl;endelsecnt00K=cnt001+l,bl;end实训7:数字跑表设计与实现33.计数器电路设计Verilog HDL设计百分秒设计:module ms (elk, reset, pause, f lagl, ms_h, ms_l);input elk,reset, pause;output flagl;output 3:0ms_h, ms
7、_l;reg 6:0ms;reg flagl;reg 3:0ms_h;wire 3:0ms_l;always(posedge elk or negedge reset)beginif (reset=r bO)beginms=7,dO;flagl=7, d99)beginms=7, dO;flagl=flagl;endelse ms=z7, d90) ms_h=7, d80) ms_h=4d8;else if(ms=7d70) ms_h=7, d60) ms_h=7, d50) ms_h=7d40) ms_h=7d30) ms_h=7, d20) ms_h=7, diO) ms_h=4, dl;
8、else ms_h=4,dO;endassign ms_l=ms-ms h*4diO; endmodule实训7:数字跑表设计与实现4y 1 j 、=(”、秒设计程序:module s (f lagl, reset, pause, f lag2, s_h, s_l);input flagl, reset, pause; output flag2;output 3:0s_h, s_l;reg 5:0s;reg flag2;reg 3:0s_h;wire 3:0s_l;always (posedge flagl or negedge reset)beginif (reset=r bO)begins
9、=6, dO;flag2=6, d59)begins=6J dO;flag2=flag2;endelse s=7, d50) s_h=7, d40) s_h=7,d30) s_h=7J d20) s_h=7J diO) s_h=4dl;else s_hr17*5!1,7 mbHXr*_“WX,# ifxt 小,XM DX,k X,t/intka*#分设计程序:module m(flag2, reset, pause, m_h, m l);input flag2, reset, pause; output 3:0m_h, m_l;reg 5:0m;reg 3:0m_h;wire 3:0m_l;a
10、lways (posedge flag2 or negedge reset)beginif (reset=r bO)m=6 d59)m=6,dO;else m=6, d50) m_h=6d40) m_h=6, d30) m_h=6d20) m_h=6, diO) m_h=4, dl;else m_h=4, dO;endassignh*4diO; endmodule实训7:数字跑表设计与实现64.数码管显示控制电路设计Verilog HDL设计module xshi (clkOOl, ms_h, ms_l, s_h, s_l, m_h, m_l, scan, led);input clkOOl;
11、input 3:0ms_h, ms_l, s_h, s_l, m_h, m_l; output 5:0scan;output 6:0led;reg 5:0scan;reg 6:0led;reg 2:0a;reg 3:0bin;always(posedge clkOOl)beginif (a=3,d5)a=3,b000;else a=a+r bl;endalways(a or ms_l or ms_h or s_l or s_h or m_l or m_h)begincase(a)3dO:begin scan=6, blllllO;bin=ms_l;end3 dl:begin scan=6, b
12、llllOl;bin=ms_h;end3 d2:begin scan=6, bl11011;bin=s_l;end3d3:begin scan=6, bl10111;bin=s_h;end3d4:begin scan=6, bl01 111;bin=m_l;end3d5:begin scan=6, bOlllll;bin=m_h;enddefault : begin scan=6, bl11111;bin=4,bOOOO;endendcaseendalways(bin)begincase(bin)4b0000:led=7,b0111111;4b0001:led=7,b0000110;4b0010:led=7,bl011011;4 b0011:led=7,bl001111;4 b0100:led=7bn00110;4 bOlOlilecKbllOHOl;4 b0110:led=7,blllll01;4 b0111:led=7,bOOOOlll;4bl000:led=7blllllll;