硬件描述语言7_第1页
硬件描述语言7_第2页
硬件描述语言7_第3页
硬件描述语言7_第4页
硬件描述语言7_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主讲:信息与通信学院谢跃雷(副教授)硬件描述语言及其在数字系统中的应用2/3/20231GUETSchoolofInformation&Communications第五讲现代数字系统设计数字系统的描述方法数字系统算法设计算法流程图算法结构2/3/20232GUETSchoolofInformation&Communications5.1数字系统模型为便于分析和设计数字系统,有必要选择适当的模型对系统进行描述。数字系统的动态模型和算法模型是两种基本的有效模型。1.动态模型指在数字逻辑设计中,采用传统的状态转换图,状态转换表,状态方程,输出方程,时序图,真值表,卡诺图等描述工具的数字系统称为动态模型。2/3/20233GUETSchoolofInformation&Communications显然,在传统数字电路中学习采用的都是动态模型。

例如:举重比赛有三位裁判,一位是主裁判A,另两位是副裁判B和C,运动员一次举重是否成功,由裁判员各自按动面前的按钮决定,只有两人以上,且其中必须有主裁判判定为成功时,表示成功的指示灯L才会燃亮。

ABC

L00000010010001101000101111011111真值表函数式:L=A(B+C)&ALBC2/3/20234GUETSchoolofInformation&Communications例:设计一个串行数据检测电路,当连续输入3个或3个以上“1”时,电路输出为“1”,其它情况下输出为“0”。例如:输入X101100111011110输出Z000000001000110状态表2/3/20235GUETSchoolofInformation&Communications2.算法模型设计数字系统的传统方法是建立在系统动态模型的基础上的。对于较复杂的数字系统,动态模型难以适用,数字技术人员现今普遍采用系统算法模型来描述和设计数字系统。系统算法模型思想:将系统实现的功能看作是应完成的某种运算。若运算太复杂,可把它分解成一系列子运算(子功能),若子运算还较复杂,可以继续分解,直到分解为一系列简单运算。2/3/20236GUETSchoolofInformation&Communications然后按一定的规律,顺序地或并行地进行这些简单的基本运算,从而,实现原来复杂系统的功能。算法就是对这种有规律、有序分解的一种描述。事实证明,任何一个系统都可以用算法模型来进行描述。

系统的算法模型通常具有两大特征:(1)含有若干子运算,这些子运算实现对欲处理数据或信息的传输、存储或加工处理。(2)具有相应的控制序列,控制子运算按一定的规律有序地进行。

2/3/20237GUETSchoolofInformation&Communications例:设计一个串行数据检测电路,当连续输入3个或3个以上“1”时,电路输出为“1”,其它情况下输出为“0”。例如:输入X101100111011110输出Z0000000001000110求其算法模型?解:实现该系统功能应由三个存贮单元R1、R2和R3,分别存放输入信号x(t-1)、x(t)、x(t+1)的数据,然后再根据以下检测规则决定输出Z

(1)当x(t-1)=x(t)=x(t+1)=1,输出Z=1即Z=R1&R2&R3。(2)其它情况Z=0。每经过一次检测,则将后进入的数据取代先进入的数据,又送进一个新的数据,此过程周而复始地进行。

以上就是串行数据检测算法,如何描述该算法模型?可借助软件设计中的流程图描述法2/3/20238GUETSchoolofInformation&Communications图5.1.3序列检测系统算法流程图开始t=0Z=0t=t+1Z=1Z=0R1=R2=R3=1?

NOYESR1X(t)R2R1R3R2以图形像地给出了需要进行的操作以及进行这些操作的条件和顺序。与软件设计中的流程图相同,称为算法流程图。工作块:矩形判别块:菱形条件块:矩形开始结束2/3/20239GUETSchoolofInformation&Communicationsmoduleser_detector(z,x,clk);inputx,clk;outputz;regr1,r2,r3;always@(posedgeclk)beginr3<=r2;r2<=r1;r1<=x;endassignz=r1&r2&r3;endmodule2/3/202310GUETSchoolofInformation&CommunicationsQuartusii仿真结果

synplify综合结果

算法模型并非都不可综合2/3/202311GUETSchoolofInformation&Communications5.2算法状态机图(ASM)

算法流程图是基于事件驱动,仅规定了操作的顺序,并未规定操作的时间及操作之间的时序关系,因此算法流程图和硬件之间的对应并不严格,一般无法直接用Verilog描述。为克服这一缺点,引入另一种描述方法ASM(Algorithmicstatemachine)图。

ASM图是按照一组简单和明确的规则绘制的。在时序电路的ASM图中,每一个状态由一个ASM块来表示。一个ASM块是一种小型的符号化结构图,由它指出了当前状态、它的输出和次态的条件。一个数字系统所有状态的ASM块,按照一定的顺序联结成一个网状结构,由此产生的ASM图可用来精确地描述系统所具有的功能。2/3/202312GUETSchoolofInformation&Communications1、基本符号

ASM图包含三种不同类型的符号:矩形状态框、菱形判别框和条件输出框。入口出口状态输出表(a)状态框状态名状态编码状态框

(statebox)记忆该状态下所产生的控制信号、寄存器操作每一状态赋予一名称,标记于左上方指定给状态之二进制编码置于右上方例如一状态名称为IDLE,指定二进制码011,寄存器操作为R0,并启动某操作的控制信号R<-0RUNIDLE0112/3/202313GUETSchoolofInformation&Communications条件输出表入口出口(c)条件输出框条件入口条件假出口0条件真出口1(b)判别框判别框

(decisionbox)描述输入对控制子系统之效应,输入条件为单一变量或布尔表达式以有二个或更多出口路径之菱形表示,测试条件标记于内若判别框有二输出,则一为TRUE(1),另一为FALSE(0)条件框

(conditionaloutputbox)为ASM特有,以椭圆表示输入路径必须来自判别框出口之一条件框内的输出或寄存器操作,在输入条件满足的状态下才会发生。2/3/202314GUETSchoolofInformation&CommunicationsASM块范例1个状态框:IDLE2个判别框:STARTQ01个条件框A2、ASM块

ASM图的基本单元是ASM块,ASM块必含一个矩形状态框,菱形判断框和条件输出框可选。AVAILSTARTA<-0Q0IDLE0101MUL0MUL1ASM块2/3/202315GUETSchoolofInformation&Communications特点:只有一个状态框只有一条进入路径,可以有多条离开路径块内所有的操作必须与系统同步在一个clock(T)内完成相同的CLOCK会使系统控制状态转移到IDLE、MUL0、MUL1中的一个状态AVAILSTARTA<-0Q0IDLE0101MUL0MUL1entryexitexitexit注:ASM块等同于时序机的状态,对于一个给定的ASM图,用状态转换图也可以表示同样的信息,但是对机器的动作表示不清晰2/3/202316GUETSchoolofInformation&Communications并行(parallel)模式与串行(serial)模式当x1=1,x2=1,x3=02/3/202317GUETSchoolofInformation&Communications原则1:在算法的起始点安排一个状态;原则2:必须用状态来分开不能同时实现的寄存器传输操作;3、算法流程图→ASM图算法流程图的工作块、判别块和条件操作块分别对应于ASM图的状态框、条件判别框和条件输出框。转换时遵循以下原则:原则3:判断如果受寄存器操作的影响,应在它们之间安排一个状态。2/3/202318GUETSchoolofInformation&CommunicationsRR←DATARR←(RR-1)算法流程图工作块LD=0CPR=1LD=1CPR=0ASM图SiSi+1011100状态框确定控制信号:LD=0RR←DATACPR=0RR←(RR-1)a)工作块对应状态块2/3/202319GUETSchoolofInformation&Communicationsb)条件操作块和条件输出块RAM=0SOE?YNSRSOE?YNSL01010110Cr=0算法流程图ASM图控制信号:Cr=0RAM←02/3/202320GUETSchoolofInformation&Communications

由算法流程图转换为ASM图时,判断A+1之后的值,需要插入一个方框。c)转换原则三2/3/202321GUETSchoolofInformation&Communications例:设计一个自动报纸销售机设计—个简单的数字电路用于电子的报纸售卖机的投币器。假设报纸价格为1.5元。投币器只能接受5角和1元的硬币。必须提供适当数目的零钱,投币器不找钱。合法的硬币组合包括1个5角的硬币和1个1元的硬币,3个5角的硬币,1个1元硬币和1个5角的硬币,2个1元的硬币是合法的,但是投币器不找钱。当投币满足时,送出一份报纸假定输入硬币由AB表示:00-无投币01-5角10-1元2/3/202322GUETSchoolofInformation&Communications算法流程图开始Coin<=0Paper<=0waitcoinABCoin=coinCoin=coin+10Coin=coin+5Coin>=15?Paper=1rstYNYN000110Coin<=0Paper<=0waitcoinABCoin>=15?rstCoin=coin+5Coin=coin+10Paper=1s0s1s2ASM图2/3/202323GUETSchoolofInformation&Communicationsmodulepaper_seller(paper,clk,rst,ab);inputclk,rst;input[1:0]ab;outputpaper;regpaper;reg[4:0]coin;reg[1:0]state;parameters0=2'b00,s1=2'b01,s2=2'b10;always@(posedgeclk)if(rst)beginstate<=s0;paper<=1'b0;endelseCoin<=0Paper<=0waitcoinABCoin>=15?rstCoin=coin+5Coin=coin+10Paper=1s0s1s22/3/202324GUETSchoolofInformation&Communicationscase(state)s0:begincoin<=5'b00000;

state<=s1;paper<=1'b0;ends1:beginif(ab==2'b01)

coin<=coin+5;elseif(ab==2'b10)

coin<=coin+10;state<=s2;endCoin<=0Paper<=0waitcoinABCoin>=15?rstCoin=coin+5Coin=coin+10Paper=1s0s1s22/3/202325GUETSchoolofInformation&Communicationss2:begin

if(coin>=15)beginpaper<=1'b1;state<=s0;

end

elsestate<=s1;endendcaseendmoduleCoin<=0Paper<=0waitcoinABCoin>=15?rstCoin=coin+5Coin=coin+10Paper=1s0s1s22/3/202326GUETSchoolofInformation&Communications2/3/202327GUETSchoolofInformation&Communications2/3/202328GUETSchoolofInformation&Communications设计要求:设计一个十字路口交通灯控制系统。

东西道为主道,南北道为副道。如果东西道(EW)及南北道(NS)均有车,则东西道每次通行60秒(绿灯),南北道每次通行40秒(绿灯)。如果仅有一个通道有车,则禁止无车通道(红灯);如果两通道均无车,则禁止南北道。通道转换时,绿灯通道均需停车3秒(黄灯)。控制信号:输出灯光信号

NSRedNSGeenNSYellowEWRedEWGeenEWYellow实例2:交通灯控制系统2/3/202329GUETSchoolofInformation&Communications开始东西道通行南北道禁止南北有车且东西无车或南北东西均有车且达到60秒东西停车南北停车3秒东西道禁止南北道通行南北无车且东西有车或南北东西均有车且达到40秒南北停车东西停车3秒0011分析:由题目得十字路口交通灯控制器大致流程图细化问题:

(1)如何判断有无车?

传感器:NSCAR

EWCAR(2)如何定时?如何启动定时?

定时器:TM60ENTM60

TM40ENTM40

TM3ENTM3

2/3/202330GUETSchoolofInformation&CommunicationsSTARTEWPASS,NSSTOPNSCAR=1?EWCAR=1?60秒?3秒?00001111EWSTOP,NSPASSNSCAR=1?EWCAR=1?40秒?3秒?000EWHOLD,NSHOLD01111EWHOLD,NSHOLD十字路口交通灯算法流程图:2/3/202331GUETSchoolofInformation&Communications控制信号列表:传感器定时器定时器使能输出灯光信号

NSCARTM60ENTM60NSRed

EWCARTM40ENTM40NSGeen

TM3ENTM3NSYellowEWRedEWGeenEWYellow该系统是以控制为主的系统,其数据单元仅包含定时器,接收ENTM60、ENTM40、ENTM3使信号,给出TM60、TM40、TM3信号。2/3/202332GUETSchoolofInformation&Communications由算法流程图转换成ASM图NSCAREWCARTM300001111NSCAREWCARTM40TM300001111EWGeenNSRed,ENTM60NSRedEWYellow,ENTM300S0S101NSGreenEWRed,ENTM40EWRedNSYellow,ENTM31110S2S3TM602/3/202333GUETSchoolofInformation&Communicationsmoduletraffic_light_control_unit(nsred,nsgreen,nsyellow,ewred,ewgreen,ewyellow,entm60,entm40,entm3,clk,rst,ewcar,nscar,tm60,tm40,tm3);outputnsred,nsgreen,nsyellow,ewred,ewgreen,ewyellow,entm60,entm40,entm3;input

clk,rst,ewcar,nscar,tm60,tm40,tm3;

regnsred,nsgreen,nsyellow,ewred,ewgreen,ewyellow,entm60,entm40,entm3;

parameters0=2'b00,s1=2'b01,s2=2'b11,s3=2'b10;

reg[1:0]next_state,state;2/3/202334GUETSchoolofInformation&Communicationsalways@(posedgeclk)

if(rst)state<=s0;

elsestate<=next_state;always@(stateorewcarornscarortm60ortm40ortm3)

case(state)2/3/202335GUETSchoolofInformation&Communicationss0:begin

nsred=1'b1;nsgreen=1'b0;nsyellow=1'b0;ewred=1'b0;ewgreen=1'b1;ewyellow=1'b0;entm60=1'b1;entm40=1'b0;entm3=1'b0;

if((nscar&ewcar&tm60)|(nscar&(!ewcar)))

next_state<=s1;else

next_state<=s0;

end2/3/202336GUETSchoolofInformation&Communicationss1:beginnsred=1'b1;nsgreen=1'b0;nsyellow=1'b0;ewred=1'b0;ewgreen=1'b0;ewyellow=1'b1;entm60=1'b0;entm40=1'b0;entm3=1'b1;

if(tm3)next_state<=s2;

elsenext_state<=s1;

end2/3/202337GUETSchoolofInformation&Communicationss2:beginnsred=1'b0;nsgreen=1'b1;nsyellow=1'b0;ewred=1'b1;ewgreen=1'b0;ewyellow=1'b0;entm60=1'b0;entm40=1'b1;entm3=1'b0;if((nscar&ewcar&tm40)|(!nscar))next_state<=s3;

elsenext_state<=s2;

end2/3/202338GUETSchoolofInformation&Communicationss3:beginnsred=1'b0;nsgreen=1'b0;nsyellow=1'b1;ewred=1'b1;ewgreen=1'b0;ewyellow=1'b0;entm60=1'b0;entm40=1'b0;entm3=1'b1;

if(tm3)next_state<=s0;

elsenext_state<=s3;

end

endcaseendmodule2/3/202339GUETSchoolofInformation&Communicationsmodule

traffic_light_data_path(tm60,tm40,tm3,clk,rst,entm60,entm40,entm3);

outputtm60,tm40,tm3;inputclk,rst;

inputentm60,entm40,entm3;

regtm60,tm40,tm3;

reg[7:0]cnt;

reg[7:0]cnt_data;

parametert60=8'b11000000,t40=8'b10000000,t3=8'b00010000;2/3/202340GUETSchoolofInformation&Communicationsalways@(entm60orentm40orentm3)

begincase

({entm60,entm40,entm3})3'b100:cnt_data<=t60;3'b010:cnt_data<=t40;3'b001:cnt_data<=t3;3'b000:cnt_data<=0;

endcaseend2/3/202341GUETSchoolofInformation&Communicatio

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论