第四讲同步数字系统设计基础.ppt_第1页
第四讲同步数字系统设计基础.ppt_第2页
第四讲同步数字系统设计基础.ppt_第3页
第四讲同步数字系统设计基础.ppt_第4页
第四讲同步数字系统设计基础.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、第四讲 同步数字系统设计基础,数字系统的分层和分域描述 现代数字系统设计方法 数字系统RTL级设计方法 本讲要点和实验要求,数字系统的描述,数字系统常采用分层描述的方法,实践证明这是行之有效的,因为: 分层次反映了事物的内在联系,可使大化小,复杂变简单。 分层次可将一些细节隐藏起来,减少每次处理事物的数量,便于控制事物复杂度。 分层次可以实现模块化的设计。,数字系统描述可按抽象层次不同划分为行为域、结构域和物理域描述 :,现代数字系统设计方法,系统规格 (specification),系统规格是数字系统设计的目标。包括:,数字系统功能的描述。常用功能框图、功能说明、时序图、C语言及system

2、 C等描述。 I/O引脚的描述,如功能、排列、驱动能力、电平等。 定时的描述,如引脚建立保持时间、时序要求、时钟频率等。 其它物理参数,如功耗、极限参数、封装等。,系统体系结构设计(系统设计),按系统规格的要求,人工设计系统的体系结构,划分系统功能块,并给出系统的设计规范: 功能块、输入输出接口定义及时序要求。 时钟域划分,跨时钟域异步电路划分。 系统和功能块的复位处理方法。 系统和功能块的测试方法。 对复杂设计需建立系统的行为模型。,功能块的算法模型,一般功能块总是完成一个确定的任务,可以采用算法模型描述。 算法模型描述了模块硬件的行为,但不关心硬件具体实现的方法。 算法模型是事件驱动的,不

3、含严格的时钟信息,类似于软件的程序,可用C、HDL语言描述。现在也较多采用MATLAB,system C等语言描述。,模块体系结构设计,由算法模型设计出模块及模块的体系结构,一般是将模块划分出两个独立的部分,一是完成数据处理操作的数字电路部分,称数据路径;其二是决定不同操作执行顺序的控制电路部分,称控制逻辑。,RTL级设计,RTL(Register Transfer Level)级设计是模块设计的主要工作。模块的功能可定义为一组寄存器及对寄存器的操作,对寄存器的信号进行传输和处理称为寄存器传输操作。数字系统设计是RTL级设计需满足三个条件: 1) 系统中有定义的一组寄存器。如 R1、R2。 2

4、) 能对寄存器的数据进行操作。如 R1- R1R2。 3) 系统中有信号控制操作的时序。如 if(T1=1) R1- R2;,RTL级设计,一般常用的寄存器操作有: 将数据由一个寄存器传输到另一个寄存器的传输操作。 对寄存器中的数据进行算数、逻辑操作。 对寄存器中数据进行移位操作。 对寄存器进行复位、置位操作。,右移,门级网表与物理实现,由RTL级设计,通过综合工具,可综合出门级网表。后续的布局布线设计工作一般可在设计人员指导下由EDA工具完成。,数字系统RTL级设计方法,数字系统设计模型: 一般数字系统的逻辑设计分为两个独立的部分,数据路径和控制逻辑。,数据路径,数据路径 是输入数据的处理单

5、元,一般完成数据的算数运算、逻辑运算和移位等操作,主要由加法器、逻辑运算单元、译码器、多路选择器、计数器、移位寄存器和数据寄存器等器件构成。,控制逻辑,控制逻辑:给数据路径提供一系列控制信号,并由控制输入和数据路径的状态反馈决定控制信号的产生。控制逻辑主要由触发器和逻辑门组成。 数字系统的控制逻辑和数据路径目前一般使用RTL级的硬件算法确定。数字系统设计中最有挑战性和最富有创造性的工作是提出硬件算法。,算法流程图,算法流程图是从程序流程图发展出来的一种数字系统的功能描述方法。它由启动框、结束框、工作框、判决框、条件框和有向线组成。,左图所示算法流程图描述了一个计数器R,启动一次就从0计数到10

6、后结束,并同步显示。,工作框。框内说明对应电路的功能,判决框。框内说明判决条件,并有2个以上输出。,条件框。框内说明对应电路功能,并一定与判决框一个分支相连,且与判决框并发工作,与程序流程图不同。,算法状态机(ASM),算法流程图可以方便地描述数字系统的主要功能,但不能描述同步时钟控制下,信号间的严格时序关系。进一步发展的可用于定义数字系统硬件电路的方法,称为算法状态机图(algorithmic state machine),简称ASM图。 ASM图:与算法流程图形式上相似,但有本质区别。它主要由三部分组成:状态框,判决框和条件框。 算法流程图与ASM图主要区别在操作驱动不同,算法流程图是由事

7、件驱动的操作,而ASM图的所有操作是由时钟驱动的操作。,状态框,状态框描述了在某一个状态下状态机的操作和输出。,寄存器操作或输出,R = 0; START,名称,编码,S1,001,例,名称,编码,本状态操作,状态框定义的电路,判决框,判决框又称为条件分支框,用单入口双出口的 菱形框 或单入口多出口的多边形表示,如图所 示。框中内容是被检验的判别变量和判别条件,其中的判别变量可以是状态变量,也可以是外输入变量;变量的个数可以是一个,也可以是多个;变量的作用 可以同等重要,可以有优先级顺序。判决框描述了当前输入和状态变量对状态转移或输出的影响,不同的条件给出相应的转移路径。,条件框,条件框描述了

8、在某一个状态下状态机的有条件操作和输出。条件框的输入一定是来自判决框的转移路径,条件框的操作是在给定状态下,满足一定条件后执行的操作。,ASM块,ASM块包括一个状态框和连接到它输出的所有判决框和条件框。 每一个ASM块描述了一个时钟周期的系统状态和操作。如图,当系统处于S1状态时,在ASM块内的所有操作会在同一个时钟周期内同时执行,同时系统从S1状态将转移到另一个状态(S2、S3或S4),具体转移路径由E、F值决定。,ASM块与状态机关系,状态框定义的电路,判决框和条件框定义的电路,次态输出组合电路,ASM的时序,同步数字系统中所有寄存器的时序是由一个时钟控制的。时钟不仅加在数据路径上,也加

9、在控制逻辑(控制状态机)上。当CLK上升沿到来时,系统转向状态S1,下列操作在同一个时钟期间并行进行: a) AA1 b) 如果E1,则 R0 c)当下一个CLK上升沿到来时,当前状态S1转向次态。,现态S1操作: AA1; If(E1) then R0;,ASM例,等效的ASM块,表示组合逻辑。在同一个时钟周期内完成。与执行顺序无关。,S状态,Z11,Z21,ASM例,等效的判决框,ASM例,错误反馈信号的ASM块,反馈路径未通过状态框。产生组合逻辑环。,ASM例,功能等效的并行判决框和串行判决框。,ASM图与状态图转换,ASM图与状态图是等效的,可以互相转换。,状态框,判决框,条件框,AS

10、M流程图与状态图的时序图,设计例,模块功能: 设计一个实现两个4bit无符号二进制数相乘的硬件乘法器。 设计要求: 要求用一个4bit加法器串行相加实现,如图模块。,输入输出说明: Reset:复位 Clk:时钟 St:启动信号 Done:运算结束信号 Mul:乘数 Muld:被乘数 Product:运算结果,二进制乘法原理 (算法模型),模块算法流程图,说明: St:操作启动信号。 ACC8:0: 累加器 cnt: 移位计数器 SUM4:0: 加法器和 MULD: 4bit被乘数 MUL: 4bit乘数 结果放在ACC7:0中 重点: 算法流程图要描述清楚操作数据和控制信号间的逻辑关系。,模

11、块体系结构框图,数据路径,控制逻辑,4bit加法器,9bit移位寄存器,CLK:同步时钟 Load:数据加载信号 Sh: ACC右移信号 Ad:ACC8:4更新信号 Done:结束信号 St:开始信号 M:乘数值信号,模块时序图设计,对较复杂的关键电路,结合算法流程图和初步的体系结构图,设计者应画出模块的时序图,必要时交互修改体系结构图。这是一个反复修改、细化设计的过程,需要设计者灵和应用相关知识和发挥创意,将事件驱动的算法转换为时钟驱动的控制信号和数据操作。,控制逻辑ASM图,说明: 根据算法流程图、体系结构图或时序图,分配状态,并画出ASM图。 信号说明: Load:数据加载信号 Sh:

12、ACC右移信号 Ad:ACC8:4更新信号 Done:结束信号 St:开始信号 M:乘数值信号 K: ACC右移次数为3时, k1,控制逻辑的verilog设计,module my_mult_ctl(reset,clk, start, m, load, sh, ad, done); input clk; /时钟 input st; /开始信号 input m; / 是否加被乘数信号 output load; reg load; /数据加载信号 output sh; reg sh; / ACC寄存器值右移信号 output ad; reg ad; / ACC8:4值更新信号 output don

13、e; reg done; /结束信号 wire k; /累加结束信号 reg 1:0 cnt; /累加计数器 reg 1:0 state, next_state; parameter1:0 S0=2b00, S1=2b01, S2=2b10, S3=2b11;,控制逻辑的verilog设计,always (st or k or m or state) / 状态转移和输出,状态机组合逻辑电路 begin load=0; /非阻塞赋值,在本次always操作完成时才赋值, sh=0; /在本次always中其它地方可以改变该值,实际 ad=0; /赋值是最后一次改变的值。 done=0; case

14、(state) S0: if( st=1b1) /开始 begin load=1b1; next_state=S1; /进入S1 end else next_state=S0; S1: if( m=1b1) /乘数为1 begin ad=1b1; /加被乘数,修改Ad赋值 next_state=S2; /进入S2 end else begin sh=1b1; /乘数为0,直接右移,修改Sh赋值 if(k=1b1) /乘数完进入S3 next_state=S3; else next_state=S1 /乘数未完,返回S1 end,控制逻辑的verilog设计,S2: begin sh=1b1;

15、/右移 if(k=1b1) /乘数完进入S3 next_state=S3; else next_state=S1 /乘数未完,返回S1 end S3: begin next_state=S0; /返回S0 done=1b1; / 一次操作完成,结束指示置1 end endcase end,控制逻辑的verilog设计,always (posedge reset or posedge clk) /状态转移,状态机时序逻辑电路 if (reset=1) state=0; else state=next_state; /D触发器 always (posedge clk or posedge load) /右移计数器,状态机辅助电路 if (load=1b1) / 加载数据时,清右移计数器cnt和K begin cnt=2b00; k=0; end else if (cnt=2b11) /右移到第4bit,结束指示K置1 k=1; else if ( sh=1b1 ) /右移1位,右移计数器cnt加1 cnt=cnt+1; endmodule,综合出my_mult.v的RTL级原理电路,综合出my_mult.v的门级电路,本讲要点,数字系统的分层和分域描述概念 系统规格、体系结构、算法模型、RT

温馨提示

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

最新文档

评论

0/150

提交评论