最新verilog幻灯片-第八讲-同步数字系统设计基础

上传人:F****n 文档编号:88149651 上传时间:2019-04-20 格式:PPT 页数:48 大小:674.50KB
返回 下载 相关 举报
最新verilog幻灯片-第八讲-同步数字系统设计基础_第1页
第1页 / 共48页
最新verilog幻灯片-第八讲-同步数字系统设计基础_第2页
第2页 / 共48页
最新verilog幻灯片-第八讲-同步数字系统设计基础_第3页
第3页 / 共48页
最新verilog幻灯片-第八讲-同步数字系统设计基础_第4页
第4页 / 共48页
最新verilog幻灯片-第八讲-同步数字系统设计基础_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《最新verilog幻灯片-第八讲-同步数字系统设计基础》由会员分享,可在线阅读,更多相关《最新verilog幻灯片-第八讲-同步数字系统设计基础(48页珍藏版)》请在金锄头文库上搜索。

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级的硬件算法确定。数字系统设计中最有挑战性和最富有创造性的工作是提出硬件算法。,算法流程图,算法流程图是从程序流程图发展出来的一种数字系统的功能描述方法。它由启动框、结束框、工作框、判决框、条件框和有向线组成,且各框由事件驱动并发工作,与程序流程图不同。,左图所示算法流程图

6、描述了一个计数器R,启动一次就从0计数到10后结束,并同步显示。,工作框。框内说明对应电路的功能,判决框。框内说明判决条件,并有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图与状态图是等效的,可以互相转换。,状态框,判决框,条件

10、框,ASM流程图与状态图的时序图,设计例,模块功能: 设计一个实现两个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:乘数值信号,数据路径设计-加法器部分,module my_mult_data(reset,clk, mul, muld, load, sh, ad, m, product); input reset; input clk; /时钟 input load; /数据加载信号 input sh; / ACC寄存器值右移信号 input ad; / ACC8:4值更新信号 inpu

12、t 3:0 mul; / 4bit乘数 input 3:0 muld;/ 4bit被乘数 output m; / 是否加被乘数信号 output 7:0 product; /乘法运算结果 / 模块内局部信号 reg 8:0 acc; / ACC寄存器 wire 4:0 sum; / 加法器输出部分和 assign sum = 1b0,muld+ acc7:4;/ 描述加法器,数据路径设计-移位寄存器部分,assign m = acc0; / 将ACC最低位送m /用always块描述累加器操作 always (posedge reset or posedge clk) if(reset=1)

13、acc=9d0; / 复位信号reset为1时ACC置0 else if(load =1) acc=5b00000,mul; / 加载0和乘数到ACC else if(ad =1) acc8:4= sum; / 加载求和值到ACC else if(sh =1) acc=1b0,acc8:1; / ACC右移 一位 assign product = acc7:0; / 乘法运算结果 endmodule,模块时序图设计,对较复杂的关键电路,结合算法流程图和初步的体系结构图,设计者应画出模块的时序图,必要时交互修改体系结构图。这是一个反复修改、细化设计的过程,需要设计者灵和应用相关知识和发挥创意,将

14、事件驱动的算法转换为时钟驱动的控制信号和数据操作。,计算结果,控制逻辑ASM图,说明: 根据算法流程图、体系结构图或时序图,分配状态,并画出ASM图。 信号说明: Load:数据加载信号 Sh: 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 lo

15、ad; reg load; /数据加载信号 output sh; reg sh; / ACC寄存器值右移信号 output ad; reg ad; / ACC8:4值更新信号 output done; 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(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=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号