1、第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系第八讲第八讲 同步数字系统设计基础同步数字系统设计基础v 数字系统的分层和分域描述 v 现代数字系统设计方法 v 数字系统RTL级设计方法 v 本讲要点和实验要求第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系数字系统的描述数字系统的描述 数字系统常采用分层描述的方法,实践证明这是数字系统常采用分层描述的方法,实践证明这是行之有效的,因为:行之有效的,因为:v分层次反映了事物的内在联系,可使大化小,复杂变简单。v分层次可将一些细节隐藏起来,减少每次处理事物的数量,便于控制事物复杂度。v分
2、层次可以实现模块化的设计。第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系数字系统描述可按抽象层次不同划分为行为域、数字系统描述可按抽象层次不同划分为行为域、结构域和物理域描述结构域和物理域描述:结构域结构域行为域行为域物理域物理域体系结构框图模块框图网表逻辑门系统规格算法行为RTL布尔方程传递函数晶体管版图单元宏单元模块系统实现第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系现代数字系统设计方法现代数字系统设计方法结构域结构域行为域行为域物理域物理域体系结构框图模块框图网表逻辑门系统规格算法行为RTL布尔方程传递函数晶体管系统级人工
3、设计RTL综合行为综合模块级人工设计单元(LE)单元映射、布局、布线第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系系统规格系统规格(specification)系统规格是数字系统设计的目标。包括:系统规格是数字系统设计的目标。包括:v数字系统功能的描述。常用功能框图、功能说明、时序图、C语言及system C等描述。vI/O引脚的描述,如功能、排列、驱动能力、电平等。v定时的描述,如引脚建立保持时间、时序要求、时钟频率等。v其它物理参数,如功耗、极限参数、封装等。第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系系统体系结构设计(系统
4、设计)系统体系结构设计(系统设计)按系统规格的要求,人工设计系统的体系结构,按系统规格的要求,人工设计系统的体系结构,划分系统功能块,并给出系统的设计规范划分系统功能块,并给出系统的设计规范:v功能块、输入输出接口定义及时序要求。v时钟域划分,跨时钟域异步电路划分。v系统和功能块的复位处理方法。v系统和功能块的测试方法。v对复杂设计需建立系统的行为模型。第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系功能块的算法模型功能块的算法模型 v一般功能块总是完成一个确定的任务,可以采用算法模型描述。v算法模型描述了模块硬件的行为,但不关心硬件具体实现的方法。v算法模型是事
5、件驱动的,不含严格的时钟信息,类似于软件的程序,可用C、HDL语言描述。现在也较多采用MATLAB,system C等语言描述。第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系模块体系结构设计模块体系结构设计 由算法模型设计出模块及模块的体系结构,一般是将由算法模型设计出模块及模块的体系结构,一般是将模块划分出两个独立的部分,一是完成数据处理操作的模块划分出两个独立的部分,一是完成数据处理操作的数字电路部分,称数据路径;其二是决定不同操作执行数字电路部分,称数据路径;其二是决定不同操作执行顺序的控制电路部分,称控制逻辑顺序的控制电路部分,称控制逻辑。控制逻辑数据路
6、径状态反馈控制信号输出数据输入数据控制输入第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系RTL级设计级设计 RTL RTL(Register Transfer LevelRegister Transfer Level)级设计是模块设计)级设计是模块设计的主要工作。模块的功能可定义为一组寄存器及对寄存的主要工作。模块的功能可定义为一组寄存器及对寄存器的操作,对寄存器的信号进行传输和处理称为寄存器器的操作,对寄存器的信号进行传输和处理称为寄存器传输操作。数字系统设计是传输操作。数字系统设计是RTLRTL级设计需满足三个条件级设计需满足三个条件:1)系统中有定义的一组
7、寄存器。如 R1、R2。2)能对寄存器的数据进行操作。如 R1-R1R2。3)系统中有信号控制操作的时序。如 if(T1=1)R1-R2;第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系RTL级设计级设计 一般常用的寄存器操作有:一般常用的寄存器操作有:v 将数据由一个寄存器传输到另一个寄存器的传输操作。v 对寄存器中的数据进行算数、逻辑操作。v 对寄存器中数据进行移位操作。v 对寄存器进行复位、置位操作。R1R3R2D3D2D1D00D3D2D1右移第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系门级网表与物理实现门级网表与物理实现
8、由RTL级设计,通过综合工具,可综合出门级网表。后续的布局布线设计工作一般可在设计人员指导下由EDA工具完成。第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系 数字系统数字系统RTL级设计方法级设计方法 数字系统设计模型数字系统设计模型:一般数字系统的逻辑设计分为两一般数字系统的逻辑设计分为两个独立的部分,数据路径和控制逻辑。个独立的部分,数据路径和控制逻辑。控制逻辑数据路径状态反馈控制信号输出数据输入数据控制输入第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系数据路径数据路径 数据路径 是输入数据的处理单元,一般完成数据的算数运算、
9、逻辑运算和移位等操作,主要由加法器、逻辑运算单元、译码器、多路选择器、计数器、移位寄存器和数据寄存器等器件构成。第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系控制逻辑控制逻辑 控制逻辑:给数据路径提供一系列控制信号,并由控制输入和数据路径的状态反馈决定控制信号的产生。控制逻辑主要由触发器和逻辑门组成。数字系统的控制逻辑和数据路径目前一般使用RTL级的硬件算法确定。数字系统设计中最有挑战性和最富有创造性的工作是提出硬件算法。第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系算法流程图算法流程图 算法流程图是从程序流程图发展出来的一种数字
10、系统的功能描述算法流程图是从程序流程图发展出来的一种数字系统的功能描述方法。它由启动框、结束框、工作框、判决框、条件框和有向线组方法。它由启动框、结束框、工作框、判决框、条件框和有向线组成,成,且各框由事件驱动并发工作,与程序流程图不同。左图所示算法流程图描述了一个计数器R,启动一次就从0计数到10后结束,并同步显示。工作框。框内说明对应电路的功能判决框。框内说明判决条件,并有2个以上输出。条件框。框内说明对应电路功能,并一定与判决框一个分支相连。R=0R=10?R显示启动结束10R=R+1第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系算法状态机(算法状态机(A
11、SM)v 算法流程图可以方便地描述数字系统的主要功能,但不能描述同步时钟控制下,信号间的严格时序关系。进一步发展的可用于定义数字系统硬件电路的方法,称为算法状态机图(algorithmic state machine),简称ASM图。v ASM图:与算法流程图形式上相似,但有本质区别。它主要由三部分组成:状态框,判决框和条件框。v 算法流程图与ASM图主要区别在操作驱动不同,算法流程图是由事件驱动的操作,而ASM图的所有操作是由时钟驱动的操作。第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系状态框状态框 状态框描述了在某一个状态下状态机的操作和输出。寄存器操作或输
12、出 R 名称编码本状态操作DDD状态转移和次态输出组合电路CLK输入输出100当前状态输出组合电路输出输入状态框定义的电路第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系判决框判决框 判决框判决框又称为条件分支框,用单入口双出口的 菱形框 或单入口多出口的多边形表示,如图所 示。框中内容是被检验的判别变量和判别条件,其中的判别变量可以是状态变量,也可以是外输入变量;变量的个数可以是一个,也可以是多个;变量的作用 可以同等重要,可以有优先级顺序。判决框描述了当前输入和状态变量对状态转移或输出的影响,不同的条件给出相应的转移路径。判 决 条件10判决条件第八第八讲讲
13、同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系条件框条件框 条件框描述了在某一个状态下状态机的有条件操作和输出。条件框的输入一定是来自判决框的转移路径,条件框的操作是在给定状态下,满足一定条件后执行的操作。寄 存 器 操作或输出 来自判决框的转移路径 E R=001第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系ASM块块 ASM块包括一个状态框和连接到它输出的所有判决框和条件框。每一个ASM块描述了一个时钟周期的系统状态和操作。如图,当系统处于S1状态时,在ASM块内的所有操作会在同一个时钟周期内同时执行,同时系统从S1状态将转移到另一个状态(
14、S2、S3或S4),具体转移路径由E、F值决定。AA1 E R=001 F01S2S3S4S1001ASM块第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系ASM块与状态机关系块与状态机关系DDD状态转移和次态输出组合电路CLK输入输出100当前状态输出组合电路输出输入状态框定义的电路判决框和条件框定义的电路AA1 E R=001 F01S2S3S4S1001ASM块次态输出组合电路第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系ASM的时序的时序 同步数字系统中所有寄存器的时序是由一个时钟控制的。时钟不仅加在数据路径上,也加在控制逻
15、辑(控制状态机)上。当CLK上升沿到来时,系统转向状态S1,下列操作在同一个时钟期间并行进行:a)AA1b)如果E1,则 R0c)当下一个CLK上升沿到来时,当前状态S1转向次态。现态S1操作:AA1;If(E1)then R0;CLK次态S2、S3或S4第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系ASM例例等效的等效的ASM块块 表示组合逻辑。在同一个时钟周期内完成。与执行顺序无关。x1x2Z2Sn001S2011S3100S2110S3S状态Z11Z21第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系ASM例例等效的判决框等效
16、的判决框 第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系ASM例例错误反馈信号的错误反馈信号的ASM块块 反馈路径未通过状态框。产生组合逻辑环。第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系ASM例例功能等效的并行判决框和串行判决框。功能等效的并行判决框和串行判决框。第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系ASM图与状态图转换图与状态图转换 ASM图与状态图是等效的,可以互相转换。状态框判决框条件框第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系ASM流程图与状态
17、图的时序图流程图与状态图的时序图第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系设计例设计例 模块功能模块功能:设计一个实现两个4bit无符号二进制数相乘的硬件乘法器。设计要求设计要求:要求用一个4bit加法器串行相加实现,如图模块。resetclkstmul3.0muld3.0doneproduct7.0my_mult4inst输入输出说明:输入输出说明:Reset:复位Clk:时钟St:启动信号Done:运算结束信号Mul:乘数Muld:被乘数Product:运算结果第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系二进制乘法原理二
18、进制乘法原理(算法模型)(算法模型)第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系模块算法流程图模块算法流程图 说明:vSt:操作启动信号。vACC8:0:累加器vcnt:移位计数器vSUM4:0:加法器和vMULD:4bit被乘数vMUL:4bit乘数v结果放在ACC7:0中重点:算法流程图要描述清楚数据路径、操作数据和控制信号间的逻辑关系。开始St=1?ACC=0,cnt=0,ACC3:0=MULSUM=ACC8:4+0,MULDACC0=1?ACC8:4=SUMACC右移1位cnt3?YYNNNYcnt=cnt+1第八第八讲讲 同步数字系统同步数字系统设计
19、基础设计基础 西安邮电学院通信工程系模块体系结构框图模块体系结构框图 数据路径控制逻辑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 res
20、et;input clk;/时钟input load;/数据加载信号input sh;/ACC寄存器值右移信号input ad;/ACC8:4值更新信号input 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;/描述加法器第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系数据路径设计数据路径设计-移位
21、寄存器部分移位寄存器部分assign m=acc0;/将ACC最低位送m/用用alwaysalways块描述累加器操作块描述累加器操作always(posedge reset or posedge clk)if(reset=1)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第八第八讲讲
22、 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系模块时序图设计模块时序图设计 对较复杂的关键电路,结合算法流程图和初步的体系结构图,设计者应画出模块的时序图,必要时交互修改体系结构图。这是一个反复修改、细化设计的过程,需要设计者灵和应用相关知识和发挥创意,将事件驱动的算法转换为时钟驱动的控制信号和数据操作。计算结果第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系控制逻辑控制逻辑ASM图图说明:说明:根据算法流程图、体系结构图根据算法流程图、体系结构图或时序图,分配状态,并画出或时序图,分配状态,并画出ASM图。图。信号说明:信号说明:vLoad:
23、数据加载信号:数据加载信号vSh:ACC右移信号右移信号vAd:ACC8:4更新信号更新信号vDone:结束信号:结束信号vSt:开始信号:开始信号vM:乘数值信号:乘数值信号vK: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;/数据加载信号out
24、put 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 loa
25、d=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=1b1;/乘数为0,直接右移,修改Sh赋值 if(cnt=2b11)/乘数完进入S3 next_
26、state=S3;else next_state=S1/乘数未完,返回S1 end第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系控制逻辑的控制逻辑的verilog设计设计S2:begin sh=1b1;/右移 if(cnt=2b11)/乘数完进入S3 next_state=S3;else next_state=S1/乘数未完,返回S1 endS3:begin next_state=S0;/返回S0 done=1b1;/一次操作完成,结束指示置1 end endcaseend第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系控制逻辑的控
27、制逻辑的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 cnt=2b00;else if(sh=1b1)/右移1位,右移计数器cnt加1 cnt=cnt+1b1;endmodule第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系综合出综合出
28、my_mult.vmy_mult.v的的RTLRTL级原理电路级原理电路 state1:01:0Q1:0D1:0R PATnext_state1ededed01un1_un1_un1_stateShcnt1:0R1:0Q1:01:0D1:0un3_cnt1:0+1:01:01un1_un1_state_2un1_un1_state_1un1_next_state55Adun1_state_510un1_state_410un1_state_301un1_un1_state01Load01un2_K01Done01DoneAdShLoadMStCLK第八第八讲讲 同步数字系统同步数字系统设计基础
29、设计基础 西安邮电学院通信工程系综合出综合出my_mult.vmy_mult.v的门级电路的门级电路 state_0_.QRS10QD1state_1_.QRS11QD1cnt_0_.QRS10Q0Dcnt_1_.QRS11QDun2_K_m_101G_710G_801state_0_00G_101Load_0_and5Ad_0_and50Done_0_and501state_0_i_and51Sh_0_or5un3_cnt_1.SUM101state_0_i1G_60G_6_171state_0_i_1_18state_0_i_1_19Sh_0_or5_iDoneAdShLoadMStCLK
30、第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系模块顶层设计模块顶层设计第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系模块仿真测试模块仿真测试-启动仿真工具启动仿真工具第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系模块仿真测试模块仿真测试-仿真激励文件仿真激励文件第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系模块仿真测试模块仿真测试-功能仿真结果波形功能仿真结果波形第八第八讲讲 同步数字系统同步数字系统设计基础设计基础 西安邮电学院通信工程系本讲要点本讲要点v 数字系统
31、的分层和分域描述概念v 系统规格、体系结构、算法模型、RTL级设计、行为综合和RTL级综合概念。v 数字系统设计模型,控制逻辑和数据路径的概念。v 算法流程图定义与应用。v 时序图设计v 算法状态机图定义和设计,与状态图的转换。v 掌握基于算法状态机的设计方法。p 经常不断地学习,你就什么都知道。你知道得越多,你就越有力量p Study Constantly,And You Will Know Everything.The More You Know,The More Powerful You Will Be写在最后谢谢大家荣幸这一路,与你同行ItS An Honor To Walk With You All The Way演讲人:XXXXXX 时 间:XX年XX月XX日