最新Verilog课件第八讲同步数字系统设计基础_第1页
最新Verilog课件第八讲同步数字系统设计基础_第2页
最新Verilog课件第八讲同步数字系统设计基础_第3页
最新Verilog课件第八讲同步数字系统设计基础_第4页
最新Verilog课件第八讲同步数字系统设计基础_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

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

文档简介

第八讲同步数字系统设计基础数字系统的分层和分域描述

现代数字系统设计方法数字系统RTL级设计方法

本讲要点和实验要求第八讲同步数字系统设计基础数字系统的分层和分域描述数字系统的描述

数字系统常采用分层描述的方法,实践证明这是行之有效的,因为:分层次反映了事物的内在联系,可使大化小,复杂变简单。分层次可将一些细节隐藏起来,减少每次处理事物的数量,便于控制事物复杂度。分层次可以实现模块化的设计。数字系统的描述数字系统常采用分层描述的方法,实践证明这是数字系统描述可按抽象层次不同划分为行为域、结构域和物理域描述:结构域行为域物理域体系结构框图模块框图网表逻辑门系统规格算法行为RTL布尔方程传递函数晶体管版图单元宏单元模块系统实现数字系统描述可按抽象层次不同划分为行为域、结构域和物理域描述现代数字系统设计方法结构域行为域物理域体系结构框图模块框图网表逻辑门系统规格算法行为RTL布尔方程传递函数晶体管系统级人工设计RTL综合行为综合模块级人工设计单元(LE)单元映射、布局、布线现代数字系统设计方法结构域行为域物理域体系结模块网表逻辑门系系统规格(specification)系统规格是数字系统设计的目标。包括:

数字系统功能的描述。常用功能框图、功能说明、时序图、C语言及systemC等描述。I/O引脚的描述,如功能、排列、驱动能力、电平等。定时的描述,如引脚建立保持时间、时序要求、时钟频率等。其它物理参数,如功耗、极限参数、封装等。系统规格(specification)系统规格是数字系统设系统体系结构设计(系统设计)按系统规格的要求,人工设计系统的体系结构,划分系统功能块,并给出系统的设计规范:

功能块、输入输出接口定义及时序要求。时钟域划分,跨时钟域异步电路划分。系统和功能块的复位处理方法。系统和功能块的测试方法。对复杂设计需建立系统的行为模型。系统体系结构设计(系统设计)按系统规格的要求,人工设计系统的功能块的算法模型一般功能块总是完成一个确定的任务,可以采用算法模型描述。算法模型描述了模块硬件的行为,但不关心硬件具体实现的方法。算法模型是事件驱动的,不含严格的时钟信息,类似于软件的程序,可用C、HDL语言描述。现在也较多采用MATLAB,systemC等语言描述。功能块的算法模型一般功能块总是完成一个确定的任务,可以采用模块体系结构设计由算法模型设计出模块及模块的体系结构,一般是将模块划分出两个独立的部分,一是完成数据处理操作的数字电路部分,称数据路径;其二是决定不同操作执行顺序的控制电路部分,称控制逻辑。控制逻辑数据路径状态反馈控制信号输出数据输入数据控制输入模块体系结构设计由算法模型设计出模块及模块的体系结RTL级设计RTL(RegisterTransferLevel)级设计是模块设计的主要工作。模块的功能可定义为一组寄存器及对寄存器的操作,对寄存器的信号进行传输和处理称为寄存器传输操作。数字系统设计是RTL级设计需满足三个条件:1)

系统中有定义的一组寄存器。如R1、R2。2)

能对寄存器的数据进行操作。如R1<-R1+R2。3)

系统中有信号控制操作的时序。如if(T1==1)R1<-R2;RTL级设计RTL(RegisterTransferRTL级设计一般常用的寄存器操作有:

将数据由一个寄存器传输到另一个寄存器的传输操作。对寄存器中的数据进行算数、逻辑操作。对寄存器中数据进行移位操作。对寄存器进行复位、置位操作。R1R3R2+D3D2D1D00D3D2D1右移RTL级设计一般常用的寄存器操作有:

R1R3R2+D3D门级网表与物理实现由RTL级设计,通过综合工具,可综合出门级网表。后续的布局布线设计工作一般可在设计人员指导下由EDA工具完成。门级网表与物理实现由RTL级设计,通过综合工具,可综合出门级

数字系统RTL级设计方法

数字系统设计模型:

一般数字系统的逻辑设计分为两个独立的部分,数据路径和控制逻辑。

控制逻辑数据路径状态反馈控制信号输出数据输入数据控制输入数字系统RTL级设计方法数字系统设计模型:一般数据路径

数据路径是输入数据的处理单元,一般完成数据的算数运算、逻辑运算和移位等操作,主要由加法器、逻辑运算单元、译码器、多路选择器、计数器、移位寄存器和数据寄存器等器件构成。数据路径数据路径是输入数据的处理单元,一般完成数控制逻辑

控制逻辑:给数据路径提供一系列控制信号,并由控制输入和数据路径的状态反馈决定控制信号的产生。控制逻辑主要由触发器和逻辑门组成。数字系统的控制逻辑和数据路径目前一般使用RTL级的硬件算法确定。数字系统设计中最有挑战性和最富有创造性的工作是提出硬件算法。

控制逻辑控制逻辑:给数据路径提供一系列控制信号,并由算法流程图算法流程图是从程序流程图发展出来的一种数字系统的功能描述方法。它由启动框、结束框、工作框、判决框、条件框和有向线组成,且各框由事件驱动并发工作,与程序流程图不同。左图所示算法流程图描述了一个计数器R,启动一次就从0计数到10后结束,并同步显示。工作框。框内说明对应电路的功能判决框。框内说明判决条件,并有2个以上输出。条件框。框内说明对应电路功能,并一定与判决框一个分支相连。R<=0R=10?R显示启动结束10R<=R+1算法流程图算法流程图是从程序流程图发展出来的一种数字算法状态机(ASM)算法流程图可以方便地描述数字系统的主要功能,但不能描述同步时钟控制下,信号间的严格时序关系。进一步发展的可用于定义数字系统硬件电路的方法,称为算法状态机图(algorithmicstatemachine),简称ASM图。ASM图:与算法流程图形式上相似,但有本质区别。它主要由三部分组成:状态框,判决框和条件框。算法流程图与ASM图主要区别在操作驱动不同,算法流程图是由事件驱动的操作,而ASM图的所有操作是由时钟驱动的操作。算法状态机(ASM)算法流程图可以方便地描述数字系统的主要状态框

状态框描述了在某一个状态下状态机的操作和输出。

寄存器操作或输出

R<=0;START名称编码S1001例=>名称编码本状态操作DDD状态转移和次态输出组合电路CLK输入输出100当前状态输出组合电路输出输入状态框定义的电路状态框

状态框描述了在某一个状态下状态机的操作和输出。

寄判决框判决框又称为条件分支框,用单入口双出口的菱形框或单入口多出口的多边形表示,如图所示。框中内容是被检验的判别变量和判别条件,其中的判别变量可以是状态变量,也可以是外输入变量;变量的个数可以是一个,也可以是多个;变量的作用可以同等重要,可以有优先级顺序。判决框描述了当前输入和状态变量对状态转移或输出的影响,不同的条件给出相应的转移路径。判决条件10判决条件判决框判决框又称为条件分支框,用单入口双出口的菱形框或条件框

条件框描述了在某一个状态下状态机的有条件操作和输出。条件框的输入一定是来自判决框的转移路径,条件框的操作是在给定状态下,满足一定条件后执行的操作。寄存器操作或输出

来自判决框的转移路径

E

R<=001条件框条件框描述了在某一个状态下状态机的有条件操作和ASM块

ASM块包括一个状态框和连接到它输出的所有判决框和条件框。每一个ASM块描述了一个时钟周期的系统状态和操作。如图,当系统处于S1状态时,在ASM块内的所有操作会在同一个时钟周期内同时执行,同时系统从S1状态将转移到另一个状态(S2、S3或S4),具体转移路径由E、F值决定。

A<=A+1

E

R<=001F01S2S3S4S1001ASM块ASM块ASM块包括一个状态框和连接到它输出的所ASM块与状态机关系DDD状态转移和次态输出组合电路CLK输入输出100当前状态输出组合电路输出输入状态框定义的电路判决框和条件框定义的电路A<=A+1

E

R<=001F01S2S3S4S1001ASM块次态输出组合电路ASM块与状态机关系DDD状态转移和次态输出组合电路CLK输ASM的时序同步数字系统中所有寄存器的时序是由一个时钟控制的。时钟不仅加在数据路径上,也加在控制逻辑(控制状态机)上。当CLK上升沿到来时,系统转向状态S1,下列操作在同一个时钟期间并行进行:a)

A<=A+1b)

如果E=1,则R<=0c)

当下一个CLK上升沿到来时,当前状态S1转向次态。现态S1操作:A<=A+1;If(E=1)thenR<=0;CLK次态S2、S3或S4ASM的时序同步数字系统中所有寄存器的时序是由一个时钟控制ASM例等效的ASM块

表示组合逻辑。在同一个时钟周期内完成。与执行顺序无关。x1x2Z2Sn001S2011S3100S2110S3S状态Z1=1Z2=1ASM例等效的ASM块表示组合逻辑。在同一个时钟周期内完成ASM例等效的判决框

ASM例等效的判决框ASM例错误反馈信号的ASM块

反馈路径未通过状态框。产生组合逻辑环。ASM例错误反馈信号的ASM块反馈路径未通过状态框。产生组ASM例功能等效的并行判决框和串行判决框。ASM例功能等效的并行判决框和串行判决框。ASM图与状态图转换ASM图与状态图是等效的,可以互相转换。状态框判决框条件框ASM图与状态图转换ASM图与状态图是等效的,可以互相转换ASM流程图与状态图的时序图ASM流程图与状态图的时序图设计例模块功能:设计一个实现两个4bit无符号二进制数相乘的硬件乘法器。设计要求:要求用一个4bit加法器串行相加实现,如图模块。

输入输出说明:Reset:复位Clk:时钟St:启动信号Done:运算结束信号Mul:乘数Muld:被乘数Product:运算结果设计例模块功能:设计一个实现两个4bit无符号二进制数相二进制乘法原理(算法模型)二进制乘法原理(算法模型)模块算法流程图

说明:St:操作启动信号。ACC[8:0]:累加器cnt:移位计数器SUM[4:0]:加法器和MULD:4bit被乘数MUL:4bit乘数结果放在ACC[7:0]中重点:算法流程图要描述清楚数据路径、操作数据和控制信号间的逻辑关系。开始St=1?ACC<=0,cnt<=0,ACC[3:0]<=MULSUM<=ACC[8:4]+{0,MULD}ACC[0]=1?ACC[8:4]<=SUMACC右移1位cnt=3?YYNNNYcnt=cnt+1模块算法流程图说明:开始St=1?ACC<=0,c模块体系结构框图数据路径控制逻辑4bit加法器9bit移位寄存器CLK:同步时钟Load:数据加载信号Sh:ACC右移信号Ad:ACC[8:4]更新信号Done:结束信号St:开始信号M:乘数值信号模块体系结构框图数据路径控制逻辑4bit加法器9bit移位数据路径设计-加法器部分modulemy_mult_data(reset,clk,mul,muld,load,sh,ad,m,product);inputreset;inputclk;//时钟inputload;//数据加载信号inputsh;//ACC寄存器值右移信号inputad;//ACC[8:4]值更新信号input[3:0]mul;//4bit乘数input[3:0]muld;//4bit被乘数outputm;//是否加被乘数信号output[7:0]product;//乘法运算结果

//模块内局部信号reg[8:0]acc;//ACC寄存器wire[4:0]sum;//加法器输出部分和

assignsum={1‘b0,muld}+acc[7:4];//描述加法器数据路径设计-加法器部分modulemy_mult_dat数据路径设计-移位寄存器部分assignm=acc[0];

//将ACC最低位送m//用always块描述累加器操作always@(posedgeresetorposedgeclk)if(reset==1)acc<=9‘d0;//复位信号reset为1时ACC置0elseif(load==1)acc<={5‘b00000,mul};//加载0和乘数到ACCelseif(ad==1)acc[8:4]<=sum;//加载求和值到ACCelseif(sh==1)acc<={1‘b0,acc[8:1]};//ACC右移

一位assignproduct=acc[7:0];

//乘法运算结果endmodule数据路径设计-移位寄存器部分assignm=acc[0模块时序图设计对较复杂的关键电路,结合算法流程图和初步的体系结构图,设计者应画出模块的时序图,必要时交互修改体系结构图。这是一个反复修改、细化设计的过程,需要设计者灵和应用相关知识和发挥创意,将事件驱动的算法转换为时钟驱动的控制信号和数据操作。计算结果模块时序图设计对较复杂的关键电路,结合算法流程控制逻辑ASM图说明:根据算法流程图、体系结构图或时序图,分配状态,并画出ASM图。信号说明:Load:数据加载信号Sh:ACC右移信号Ad:ACC[8:4]更新信号Done:结束信号St:开始信号M:乘数值信号K:ACC右移次数为3时,k<=1控制逻辑ASM图控制逻辑的verilog设计modulemy_mult_ctl(reset,clk,start,m,load,sh,ad,done);inputclk;//时钟inputst;//开始信号inputm;//是否加被乘数信号outputload;regload;//数据加载信号outputsh;regsh;//ACC寄存器值右移信号outputad;regad;//ACC[8:4]值更新信号outputdone;regdone;//结束信号

wirek;//累加结束信号reg[1:0]cnt;//累加计数器reg[1:0]state,next_state;parameter[1:0]S0=2’b00,S1=2’b01,S2=2’b10,S3=2’b11;控制逻辑的verilog设计modulemy_mult_c控制逻辑的verilog设计always@(storkormorstate)//状态转移和输出,状态机组合逻辑电路beginload<=0;//非阻塞赋值,在本次always操作完成时才赋值,sh<=0;//在本次always中其它地方可以改变该值,实际ad<=0;//赋值是最后一次改变的值。done<=0;case(state)S0:if(st==1’b1)//开始beginload<=1’b1;next_state<=S1;//进入S1endelsenext_state<=S0;S1:if(m==1’b1)//乘数为1beginad<=1’b1;//加被乘数,修改Ad赋值next_state<=S2;//进入S2endelsebeginsh<=1’b1;//乘数为0,直接右移,修改Sh赋值

if(cnt==2’b11)//乘数完进入S3next_state<=S3;elsenext_state<=S1//乘数未完,返回S1end控制逻辑的verilog设计always@(stork控制逻辑的verilog设计S2:beginsh<=1’b1;//右移

if(cnt==2’b11)//乘数完进入S3next_state<=S3;elsenext_state<=S1//乘数未完,返回S1endS3:beginnext_state<=S0;//返回S0done<=1’b1;//一次操作完成,结束指示置1endendcaseend控制逻辑的verilog设计S2:beginsh<=1控制逻辑的verilog设计always@(posedgeresetorposedgeclk)//状态转移,状态机时序逻辑电路if(reset==1)state<=0;elsestate<=next_state;//D触发器

always@(posedgeclkorposedgeload)//右移计数器,状态机辅助电路if(load==1'b1)//加载数据时,清右移计数器cntcnt<=2'b00;elseif(sh==1'b1)//右移1位,右移计数器cnt加1cnt<=cnt+1'b1;endmodule控制逻辑的verilog设计always@(posedge综合出my_mult.v的RTL级原理电路

综合出my_mult.v的RTL级原理电路综合出my_mult.v的门级电路

综合出my_mult.v的门级电路模块顶层设计模块顶层设计模块仿真测试-启动仿真工具模块仿真测试-启动仿真工具模块仿真测试-仿真激励文件模块仿真测试-仿真激励文件模块仿真测试-功能仿真结果波形模块仿真测试-功能仿真结果波形本讲要点数字系统的分层和分域描述概念系统规格、体系结构、算法模型、RTL级设计、行为综合和RTL级综合概念。数字系统设计模型,控制逻辑和数据路径的概念。算法流程图定义与应用。时序图设计算法状态机图定义和设计,与状态图的转换。掌握基于算法状态机的设计方法。本讲要点数字系统的分层和分域描述概念实验要求实验三:8bit无符号数串行硬件乘法器模块设计和功能仿真(2学时)设计要求:要求用一个8bit加法器串行相加实现,模块如下图。完成模块设计和功能仿真。输入输出说明:Reset:复位Clk:时钟St:启动信号Done:运算结束信号Mul:乘数Muld:被乘数Product:运算结果实验要求实验三:8bit无符号数串行硬件乘法器模块设计和功能第八讲同步数字系统设计基础数字系统的分层和分域描述

现代数字系统设计方法数字系统RTL级设计方法

本讲要点和实验要求第八讲同步数字系统设计基础数字系统的分层和分域描述数字系统的描述

数字系统常采用分层描述的方法,实践证明这是行之有效的,因为:分层次反映了事物的内在联系,可使大化小,复杂变简单。分层次可将一些细节隐藏起来,减少每次处理事物的数量,便于控制事物复杂度。分层次可以实现模块化的设计。数字系统的描述数字系统常采用分层描述的方法,实践证明这是数字系统描述可按抽象层次不同划分为行为域、结构域和物理域描述:结构域行为域物理域体系结构框图模块框图网表逻辑门系统规格算法行为RTL布尔方程传递函数晶体管版图单元宏单元模块系统实现数字系统描述可按抽象层次不同划分为行为域、结构域和物理域描述现代数字系统设计方法结构域行为域物理域体系结构框图模块框图网表逻辑门系统规格算法行为RTL布尔方程传递函数晶体管系统级人工设计RTL综合行为综合模块级人工设计单元(LE)单元映射、布局、布线现代数字系统设计方法结构域行为域物理域体系结模块网表逻辑门系系统规格(specification)系统规格是数字系统设计的目标。包括:

数字系统功能的描述。常用功能框图、功能说明、时序图、C语言及systemC等描述。I/O引脚的描述,如功能、排列、驱动能力、电平等。定时的描述,如引脚建立保持时间、时序要求、时钟频率等。其它物理参数,如功耗、极限参数、封装等。系统规格(specification)系统规格是数字系统设系统体系结构设计(系统设计)按系统规格的要求,人工设计系统的体系结构,划分系统功能块,并给出系统的设计规范:

功能块、输入输出接口定义及时序要求。时钟域划分,跨时钟域异步电路划分。系统和功能块的复位处理方法。系统和功能块的测试方法。对复杂设计需建立系统的行为模型。系统体系结构设计(系统设计)按系统规格的要求,人工设计系统的功能块的算法模型一般功能块总是完成一个确定的任务,可以采用算法模型描述。算法模型描述了模块硬件的行为,但不关心硬件具体实现的方法。算法模型是事件驱动的,不含严格的时钟信息,类似于软件的程序,可用C、HDL语言描述。现在也较多采用MATLAB,systemC等语言描述。功能块的算法模型一般功能块总是完成一个确定的任务,可以采用模块体系结构设计由算法模型设计出模块及模块的体系结构,一般是将模块划分出两个独立的部分,一是完成数据处理操作的数字电路部分,称数据路径;其二是决定不同操作执行顺序的控制电路部分,称控制逻辑。控制逻辑数据路径状态反馈控制信号输出数据输入数据控制输入模块体系结构设计由算法模型设计出模块及模块的体系结RTL级设计RTL(RegisterTransferLevel)级设计是模块设计的主要工作。模块的功能可定义为一组寄存器及对寄存器的操作,对寄存器的信号进行传输和处理称为寄存器传输操作。数字系统设计是RTL级设计需满足三个条件:1)

系统中有定义的一组寄存器。如R1、R2。2)

能对寄存器的数据进行操作。如R1<-R1+R2。3)

系统中有信号控制操作的时序。如if(T1==1)R1<-R2;RTL级设计RTL(RegisterTransferRTL级设计一般常用的寄存器操作有:

将数据由一个寄存器传输到另一个寄存器的传输操作。对寄存器中的数据进行算数、逻辑操作。对寄存器中数据进行移位操作。对寄存器进行复位、置位操作。R1R3R2+D3D2D1D00D3D2D1右移RTL级设计一般常用的寄存器操作有:

R1R3R2+D3D门级网表与物理实现由RTL级设计,通过综合工具,可综合出门级网表。后续的布局布线设计工作一般可在设计人员指导下由EDA工具完成。门级网表与物理实现由RTL级设计,通过综合工具,可综合出门级

数字系统RTL级设计方法

数字系统设计模型:

一般数字系统的逻辑设计分为两个独立的部分,数据路径和控制逻辑。

控制逻辑数据路径状态反馈控制信号输出数据输入数据控制输入数字系统RTL级设计方法数字系统设计模型:一般数据路径

数据路径是输入数据的处理单元,一般完成数据的算数运算、逻辑运算和移位等操作,主要由加法器、逻辑运算单元、译码器、多路选择器、计数器、移位寄存器和数据寄存器等器件构成。数据路径数据路径是输入数据的处理单元,一般完成数控制逻辑

控制逻辑:给数据路径提供一系列控制信号,并由控制输入和数据路径的状态反馈决定控制信号的产生。控制逻辑主要由触发器和逻辑门组成。数字系统的控制逻辑和数据路径目前一般使用RTL级的硬件算法确定。数字系统设计中最有挑战性和最富有创造性的工作是提出硬件算法。

控制逻辑控制逻辑:给数据路径提供一系列控制信号,并由算法流程图算法流程图是从程序流程图发展出来的一种数字系统的功能描述方法。它由启动框、结束框、工作框、判决框、条件框和有向线组成,且各框由事件驱动并发工作,与程序流程图不同。左图所示算法流程图描述了一个计数器R,启动一次就从0计数到10后结束,并同步显示。工作框。框内说明对应电路的功能判决框。框内说明判决条件,并有2个以上输出。条件框。框内说明对应电路功能,并一定与判决框一个分支相连。R<=0R=10?R显示启动结束10R<=R+1算法流程图算法流程图是从程序流程图发展出来的一种数字算法状态机(ASM)算法流程图可以方便地描述数字系统的主要功能,但不能描述同步时钟控制下,信号间的严格时序关系。进一步发展的可用于定义数字系统硬件电路的方法,称为算法状态机图(algorithmicstatemachine),简称ASM图。ASM图:与算法流程图形式上相似,但有本质区别。它主要由三部分组成:状态框,判决框和条件框。算法流程图与ASM图主要区别在操作驱动不同,算法流程图是由事件驱动的操作,而ASM图的所有操作是由时钟驱动的操作。算法状态机(ASM)算法流程图可以方便地描述数字系统的主要状态框

状态框描述了在某一个状态下状态机的操作和输出。

寄存器操作或输出

R<=0;START名称编码S1001例=>名称编码本状态操作DDD状态转移和次态输出组合电路CLK输入输出100当前状态输出组合电路输出输入状态框定义的电路状态框

状态框描述了在某一个状态下状态机的操作和输出。

寄判决框判决框又称为条件分支框,用单入口双出口的菱形框或单入口多出口的多边形表示,如图所示。框中内容是被检验的判别变量和判别条件,其中的判别变量可以是状态变量,也可以是外输入变量;变量的个数可以是一个,也可以是多个;变量的作用可以同等重要,可以有优先级顺序。判决框描述了当前输入和状态变量对状态转移或输出的影响,不同的条件给出相应的转移路径。判决条件10判决条件判决框判决框又称为条件分支框,用单入口双出口的菱形框或条件框

条件框描述了在某一个状态下状态机的有条件操作和输出。条件框的输入一定是来自判决框的转移路径,条件框的操作是在给定状态下,满足一定条件后执行的操作。寄存器操作或输出

来自判决框的转移路径

E

R<=001条件框条件框描述了在某一个状态下状态机的有条件操作和ASM块

ASM块包括一个状态框和连接到它输出的所有判决框和条件框。每一个ASM块描述了一个时钟周期的系统状态和操作。如图,当系统处于S1状态时,在ASM块内的所有操作会在同一个时钟周期内同时执行,同时系统从S1状态将转移到另一个状态(S2、S3或S4),具体转移路径由E、F值决定。

A<=A+1

E

R<=001F01S2S3S4S1001ASM块ASM块ASM块包括一个状态框和连接到它输出的所ASM块与状态机关系DDD状态转移和次态输出组合电路CLK输入输出100当前状态输出组合电路输出输入状态框定义的电路判决框和条件框定义的电路A<=A+1

E

R<=001F01S2S3S4S1001ASM块次态输出组合电路ASM块与状态机关系DDD状态转移和次态输出组合电路CLK输ASM的时序同步数字系统中所有寄存器的时序是由一个时钟控制的。时钟不仅加在数据路径上,也加在控制逻辑(控制状态机)上。当CLK上升沿到来时,系统转向状态S1,下列操作在同一个时钟期间并行进行:a)

A<=A+1b)

如果E=1,则R<=0c)

当下一个CLK上升沿到来时,当前状态S1转向次态。现态S1操作:A<=A+1;If(E=1)thenR<=0;CLK次态S2、S3或S4ASM的时序同步数字系统中所有寄存器的时序是由一个时钟控制ASM例等效的ASM块

表示组合逻辑。在同一个时钟周期内完成。与执行顺序无关。x1x2Z2Sn001S2011S3100S2110S3S状态Z1=1Z2=1ASM例等效的ASM块表示组合逻辑。在同一个时钟周期内完成ASM例等效的判决框

ASM例等效的判决框ASM例错误反馈信号的ASM块

反馈路径未通过状态框。产生组合逻辑环。ASM例错误反馈信号的ASM块反馈路径未通过状态框。产生组ASM例功能等效的并行判决框和串行判决框。ASM例功能等效的并行判决框和串行判决框。ASM图与状态图转换ASM图与状态图是等效的,可以互相转换。状态框判决框条件框ASM图与状态图转换ASM图与状态图是等效的,可以互相转换ASM流程图与状态图的时序图ASM流程图与状态图的时序图设计例模块功能:设计一个实现两个4bit无符号二进制数相乘的硬件乘法器。设计要求:要求用一个4bit加法器串行相加实现,如图模块。

输入输出说明:Reset:复位Clk:时钟St:启动信号Done:运算结束信号Mul:乘数Muld:被乘数Product:运算结果设计例模块功能:设计一个实现两个4bit无符号二进制数相二进制乘法原理(算法模型)二进制乘法原理(算法模型)模块算法流程图

说明:St:操作启动信号。ACC[8:0]:累加器cnt:移位计数器SUM[4:0]:加法器和MULD:4bit被乘数MUL:4bit乘数结果放在ACC[7:0]中重点:算法流程图要描述清楚数据路径、操作数据和控制信号间的逻辑关系。开始St=1?ACC<=0,cnt<=0,ACC[3:0]<=MULSUM<=ACC[8:4]+{0,MULD}ACC[0]=1?ACC[8:4]<=SUMACC右移1位cnt=3?YYNNNYcnt=cnt+1模块算法流程图说明:开始St=1?ACC<=0,c模块体系结构框图数据路径控制逻辑4bit加法器9bit移位寄存器CLK:同步时钟Load:数据加载信号Sh:ACC右移信号Ad:ACC[8:4]更新信号Done:结束信号St:开始信号M:乘数值信号模块体系结构框图数据路径控制逻辑4bit加法器9bit移位数据路径设计-加法器部分modulemy_mult_data(reset,clk,mul,muld,load,sh,ad,m,product);inputreset;inputclk;//时钟inputload;//数据加载信号inputsh;//ACC寄存器值右移信号inputad;//ACC[8:4]值更新信号input[3:0]mul;//4bit乘数input[3:0]muld;//4bit被乘数outputm;//是否加被乘数信号output[7:0]product;//乘法运算结果

//模块内局部信号reg[8:0]acc;//ACC寄存器wire[4:0]sum;//加法器输出部分和

assignsum={1‘b0,muld}+acc[7:4];//描述加法器数据路径设计-加法器部分modulemy_mult_dat数据路径设计-移位寄存器部分assignm=acc[0];

//将ACC最低位送m//用always块描述累加器操作always@(posedgeresetorposedgeclk)if(reset==1)acc<=9‘d0;//复位信号reset为1时ACC置0elseif(load==1)acc<={5‘b00000,mul};//加载0和乘数到ACCelseif(ad==1)acc[8:4]<=sum;//加载求和值到ACCelseif(sh==1)acc<={1‘b0,acc[8:1]};//ACC右移

一位assignproduct=acc[7:0];

//乘法运算结果endmodule数据路径设计-移位寄存器部分assignm=acc[0模块时序图设计对较复杂的关键电路,结合算法流程图和初步的体系结构图,设计者应画出模块的时序图,必要时交互修改体系结构图。这是一个反复修改、细化设计的过程,需要设计者灵和应用相关知识和发挥创意,将事件驱动的算法转换为时钟驱动的控制信号和数据操作。计算结果模块时序图设计对较复杂的关键电路,结合算法流程控制逻辑ASM图说明:根据算法流程图、体系结构图或时序图,分配状态,并画出ASM图。信号说明:Load:数据加载信号Sh:ACC右移信号Ad:ACC[8:4]更新信号Done:结束信号St:开始信号M:乘数值信号K:ACC右移次数为3时,k<=1控制逻辑ASM图控制逻辑的verilog设计modulemy_mult_ctl(reset,clk,start,m,load,sh,ad,done);inputclk;//时钟inputst;//开始信号inputm;//是否加被乘数信号outputload;regload;//数据加载信号outputsh;regsh;//ACC寄存器值右移信号outputad;regad;//ACC[8:4]值更新信号outputdone;regdone;//结束信号

wirek;//累加结束信号reg[1:0]cnt;//累加计数器reg[1:0]state,next_state;parameter[1:0]S0=2’b00,S1=2’b01,S2=2’b10,S3=2’b11;控制逻辑的verilog设计modulemy_mult_c控制逻辑的verilog设计always@(storkormorstate)//状态转移和输出,状态机组合逻辑电路beginload<=0;//非阻塞赋值,在本次always操作完成时才赋值,sh<=0;//在本次always中其它地方可以改变该值,实际ad<=0;//赋值是最后一次改变的值。done<=0;case(state)S0:if(st==1’b1)//开始beginload<=1’

温馨提示

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

评论

0/150

提交评论