版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
五、综合实例综合实例讲解实例一:8位累加器设计实例二:数字频率计设计实例三:交通信号灯控制电路设计实例四:自动售饮料机的设计※对多层次结构电路的描述可以采用纯文本方式,也可以用图形和文本输入相结合的方式。综合实例一:8位累加器设计累加器:对输入的8位数据不断的进行相加运算。设计方法:采用层次结构进行设计。多层次结构电路的设计8位累加器ACC设计过程:第1步:进行层次设计规划全加器:负责对不断输入的数据和进位进行累加寄存器:负责暂存累加的和,并把累加的和反馈到累加器输入端,以进行下 一次的累加。8位全加器模块———add8.v———— moduleadd8(sum,cout,a,b,cin); output[7:0]sum; outputcout; input[7:0]a,b; inputcin;
assign{cout,sum}=a+b+cin;
endmodule2)8位寄存器模块————reg8.v————modulereg8(qout,in,clk,clr);output[7:0]qout;input[7:0]in;inputclk,clr;reg[7:0]qout;always@(posedge
clkorposedge
clr) begin
if(clr)qout=0; elseqout=in; end
endmodule
第2步:进行底层设计第3步:顶层设计描述1)原理图法:
——————acc.gdf——————2)纯文本描述A:`include“add8.v”`include“reg8.v”moduleacc(accout,cout,accin,cin,clk,clr);output[7:0]accout;outputcout;input[7:0]accin;inputcin,clk,clr;wire[7:0]sum;add8A(sum,cout,accin,accout,cin); //调用add8子模块reg8R(accout,sum,clk,clr); //调用reg8子模块endmodule2)纯文本描述B:moduleacc(accout,cout,accin,cin,clk,clr);output[7:0]accout;outputcout;input[7:0]accin;inputcin,clk,clr;wire[7:0]sum;add8A(sum,cout,accin,accout,cin); //调用add8子模块reg8R(accout,sum,clk,clr); //调用reg8子模块endmodulemoduleadd8(sum,cout,a,b,cin); output[7:0]sum;outputcout;input[7:0]a,b;inputcin;
assign{cout,sum}=a+b+cin;
endmodulemodulereg8(qout,in,clk,clr);output[7:0]qout;input[7:0]in;input
clk,clr;reg[7:0]qout;always@(posedge
clkorposedge
clr) begin if(clr)qout=0; elseqout=in; end
endmodule
仿真结果功能要求:
1)在单位时间1S里对被测信号的脉冲个数进行计数,记得的脉冲个数N即为信 号的频率。
2)每隔2S进行一次频率测量,每次测量开始时,能对计数模块进行清零。
3)能够将被测信号的频率在4个数码管(测量范围为:1HZ~9999HZ)上显示出 来,每次显示的时间为2S.综合实例二:4位数字频率计一、模块划分控制模块计数模块锁存模块显示模块计数器锁存器显示译码器+数字频率计BCD_七段数码显示译码器BCD_七段数码显示译码器BCD_七段数码显示译码器BCD_七段数码显示译码器16位锁存器10进制计数器10进制计数器10进制计数器10进制计数器被测信号CLK控制模块loadCount_clrCount_en基准时钟系统复位信号enenenenclrclrclrclr控制模块:T=1S计数锁存计数清零0modulectrl(clk,rst,en,clr,load);inputclk,rst;outputen,clr,load;regen,load;always@(posedge
clk)beginif(rst)beginen<=0;load<=1;endelsebeginen<=~en;load<=en;endendassignclr=(~clk)&load;
endmodule控制模块程序:计数器模块程序:modulecount10(out,cout,en,clr,clk);output[3:0]out;outputcout;inputen,clr,clk;reg[3:0]out;always@(posedge
clkorposedge
clr)beginif(clr)out<=0;elseif(en)beginif(out==9)out<=0;elseout<=out+1;endendassigncout=((out==9)&en)?1:0;endmodule锁存器模块程序:modulelatch_16(qo,din,load);output[15:0]qo;input[15:0]din;inputload;reg[15:0]qo;always@(posedgeload)qo=din;endmodule显示译码器模块程序:moduledecode4_7(a,b,c,d,e,f,g,D);outputa,b,c,d,e,f,g;input[3:0]D;reg
a,b,c,d,e,f,g;always@(D)begincase(D)0:{a,b,c,d,e,f,g}=7'b1111110;1:{a,b,c,d,e,f,g}=7'b0110000;2:{a,b,c,d,e,f,g}=7'b1101101;3:{a,b,c,d,e,f,g}=7'b1111001;4:{a,b,c,d,e,f,g}=7'b0110011;5:{a,b,c,d,e,f,g}=7'b1011011;6:{a,b,c,d,e,f,g}=7'b1011111;7:{a,b,c,d,e,f,g}=7'b1110000;8:{a,b,c,d,e,f,g}=7'b1111111;9:{a,b,c,d,e,f,g}=7'b1111011;default:{a,b,c,d,e,f,g}=7'b0000000;endcaseendendmodule顶层模块设计:仿真:功能要求:1)在十字路口的A方向和B方向各设红(R)、黄(Y)、绿(G)、左拐(L)四盏灯。2)四盏灯按合理的顺序亮灭(下页表所示)。3)A方向是主干路,车流量大,红、绿、黄、左拐灯亮的时间分别是:55s、40s、5s、
15s。A红灯时间=B绿灯时间+B黄灯时间*2+B左拐时间。
B方向为次干道,红、绿、黄、左拐灯亮的时间分别是:65s、30s、5s、15s。
B红灯时间=A绿灯时间+A黄灯时间*2+A左拐时间。综合实例三:交通信号灯控制线路设计交通灯控制器状态转换表A方向B方向G1Y1L1R1G2Y2L2R21000000101000001001000010100000100011000000101000001001000010100信号灯状态转换示意图A方向(东西)B方向(南北)一、程序结构总控制模块B方向倒计时及显示模块显示译码器+控制电路的起停赋初值B方向控制模块A方向倒计时及显示模块显示译码器+A方向控制模块信号定义与说明输入信号:CLK:系统同步时钟信号,1Hz。EN:系统使能信号,为1时,控制器开始工作。输出信号:LAMPA:控制A方向四盏灯的工作状态,四位二进制数,LAMPA=0010(LAMPA1=1)时,绿灯亮;LAMPA=0100(LAMPA2=1)时,黄灯亮;LAMPA=0001(LAMPA0=1)时,左拐灯亮;LAMPA=1000(LAMPA3=1)时,红灯亮。LAMPB:控制B方向四盏灯的工作状态,四位二进制数,LAMPB=0010(LAMPB1=1)时,绿灯亮;LAMPB=0100(LAMPB2=1)时,黄灯亮;LAMPB=0001(LAMPB0=1)时,左拐灯亮;LAMPB=1000(LAMPB3=1)时,红灯亮。ACOUNT:用于A方向的时间显示控制,8位,两位数码管。BCOUNT:用于B方向的时间显示控制,8位,两位数码管。moduletraffic(CLK,EN,LAMPA,LAMPB,ACOUNT,BCOUNT);output[7:0]ACOUNT,BCOUNT;output[3:0]LAMPA,LAMPB;inputCLK,EN;reg[7:0]numa,numb;//两个方向剩余时间中间变量reg
tempa,tempb;//reg[2:0]counta,countb;reg[7:0]ared,ayellow,agreen,aleft,bred,byellow,bgreen,bleft;//各灯初始时间reg[3:0]LAMPA,LAMPB;always@(EN)
if(!EN)begin//设置各灯的计数器初值,用十进制表示。
ared<=8‘d55;ayellow<=8'd5;
agreen<=8'd40;aleft<=8'd15;bred<=8'd65;byellow<=8'd5;
bgreen<=8'd30;bleft<=8'd15;endassignACOUNT=numa;assignBCOUNT=numb;总控制模块always@(posedgeCLK)begin
if(EN)begin
if(!tempa)begintempa<=1;
case(counta)0:beginnuma<=agreen;LAMPA<=2;counta<=1;end1:beginnuma<=ayellow;LAMPA<=4;counta<=2;end2:beginnuma<=aleft;LAMPA<=1;counta<=3;end3:beginnuma<=ayellow;LAMPA<=4;counta<=4;end4:beginnuma<=ared;LAMPA<=8;counta<=0;end
default:LAMPA<=8;
endcaseendelsebegin
if(numa>1)if(numa[3:0]==0)beginnuma[3:0]<=4'b1001;numa[7:4]<=numa[7:4]-1;endelsenuma[3:0]<=numa[3:0]-1;
if(numa==2)tempa<=0;endendelsebeginLAMPA<=8;counta<=0;endendA方向控制及倒计时显示模块always@(posedgeCLK)begin
if(EN)begin
if(!tempb)begintempb<=1;
case(countb)0:beginnumb<=bred;LAMPB<=8;countb<=1;end1:beginnumb<=bgreen;LAMPB<=2;countb<=2;end2:beginnumb<=byellow;LAMPB<=4;countb<=3;end3:beginnumb<=bleft;LAMPB<=1;countb<=4;end4:beginnumb<=byellow;LAMPB<=4;countb<=0;enddefault:LAMPB<=8;
endcaseendelsebegin
if(numb>1)if(numb[3:0]==0)beginnumb[3:0]<=4'b1001;numb[7:4]<=numb[7:4]-1;endelsenumb[3:0]<=numb[3:0]-1;
if(numb==2)tempb<=0;endendelsebeginLAMPB<=8;countb<=0;endendendmoduleB方向控制及倒计时显示模块状态仿真结果倒计时仿真结果功能要求:1)每瓶饮料售价为2.5元,投币口可以投入5角硬币或1元硬币,实验时可以用两个按键代替。2)当累计投入2.5元硬币时,输出一瓶饮料,累计投入3元时,输出一瓶饮料同时找5角零钱。综合实例四:自动售饮料机控制线路设计设计思路:本题目属于时序逻辑问题,采用有限状态机设计,使用case语句来描述各个状态之间的转移关系。信号定义与说明输入信号:clk:系统同步时钟信号。reset:系统复位信号。half_dollar:代表投入5角硬币。one_dollar:代表投入1元硬币。输出信号:half_out:表示找零信号。dispense:表示机器售出一瓶饮料。collect:提示设币者取走饮料。中间信号:idle=0:投币的初始状态,即无钱状态。half=1:代表累计投币0.5元。one=2:代表累计投币1元。two=3:代表累计投币1.5元。three=4:代表累计投币2元。0132QX1X0/Y1Y001/00状态转换图410/0001/0010/0001/0010/0001/0001/1001/1010/11X1:1元X0:5角Y1:输出饮料Y0:找零钱
modulesell(one_dollar,half_dollar,collect,half_out,dispense,reset,clk);parameteridle=0,half=1,one=2,two=3,three=4;inputreset,clk,one_dollar,half_doll
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民间非营利组织内部制度
- 海外项目部内部保密制度
- 海尔内部控制披露制度
- 煤炭内部协同生产制度
- 煤矿内部财务科管理制度
- 环境监察内部制度
- 留置室内部生活管理制度
- 监理企业内部分配制度
- 监理工程内部培训制度
- 禁毒办内部管理制度
- 旅游概论中职PPT完整全套教学课件
- 大学生人际沟通艺术与技巧PPT全套完整教学课件
- 双溪课程评量表
- 大切诺基用户手册书(可编辑)
- 《农业统计学复习资料》
- 【科目一考试】河南省延津县驾校模拟考试练习300题
- GB/T 18380.33-2022电缆和光缆在火焰条件下的燃烧试验第33部分:垂直安装的成束电线电缆火焰垂直蔓延试验A类
- 中国近现代史纲要(专题一)
- PE工程师培训教材课件
- 土木工程结构试验与检测课件
- 2021年第二学期初中英语教研组工作计划
评论
0/150
提交评论