数字电路设计经典资料.ppt
《数字电路设计经典资料.ppt》由会员分享,可在线阅读,更多相关《数字电路设计经典资料.ppt(171页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数字电路设计内容提要n绪论n电路设计规则n电路设计流程n电路验证方法n电路实现n结束语绪论n认清数字电路设计n电路设计的三个层次n正确的入门方法n数字电路的基本参数n同步数字电路设计认清数字电路设计n电路设计是一门艺术n象艺术技巧一样,深不可测,奥妙无穷;n电路设计工程师和艺术家一样,有发挥创造性的无限空间;n电路设计所使用的“原料”和艺术作品一样,简单而且为所有人共知;n电路的表现形式和艺术作品一样,相同的内容,相同的目的,可能会有不同的表现形式。n认清数字电路设计n因为电路设计是一门艺术,所以n它不可以速成;n必须正确的入门方法;n必须经常重复练习;n在实现以前必须有完整的构思。认清数字电
2、路设计n举例:n设计一个电路完成以下波形描述的功能。Clk0123D0QD0D1D2D3D1D2D3D0D1D2D3D0D1D2D3D0D1D2D3012301230123Cnt1.0认清数字电路设计n利用选择器完成电路功能MuxCntClkD0QD1D2D3Sel认清数字电路设计n利用移位寄存器完成电路功能CarryShiftCntClkD0QD1D2D3Load电路设计的三个层次n完成功能n能够完成电路要求完成的功能n工作可靠n电路的工作对外围环境要求最低;n电路不受温度、工艺等因数的影响n可重用(可移植)n能方便的在别的电路中使用电路设计的三个层次n举例n设计一个UART的接收电路n波特
3、率19.2,偶校验,1位停止位起始位数据Uart_RxD7D6D5D4D3D2D1D0CD0校验位停止位电路设计的三个层次n定义输入输出端口n输入:UartRx、SysClk、Readn输出:Data、New、ErrUartDataUartRxSysClkNewReadErr电路设计的三个层次n功能实现(框图)下降沿下降沿检测检测接收定接收定时控制时控制采集时采集时钟生成钟生成移位寄移位寄存存奇偶奇偶/停停止位止位标志产标志产生生UartRxSysClkReadErrDataNew电路设计的三个层次n完成功能(电路图)电路设计的三个层次n该电路能完成要求的功能,我们的设计已经结束n我们来看下面
4、情况:n发送的时钟和接收的时钟源不同步n传输中出现干扰n读信号和接收时钟不同步n接收电路伪同步这些都是可靠性问题电路设计的三个层次n我们修改了电路,电路工作已经十分可靠,现在我们可以说设计结束了。n如果我们我们接到另一个项目需要做一个URAT,要求有些不同:n波特率、校验位、停止位可变;nCPU中断响应慢这么办?电路设计的三个层次n所以我们在设计电路时,最好能使电路可重用,或尽可能简单的修改原设计的情况下对电路进行移植。TDelay数字电路基本参数n无时钟信号的电路(组合逻辑)In1In2In3Out对于组合逻辑的电路,在电路分析时只有输入到输出的延时(对于组合逻辑的电路,在电路分析时只有输入
5、到输出的延时(Tdelay),),由于电路实现的原因,不同的输入到输出的延时不同,不同的工艺产由于电路实现的原因,不同的输入到输出的延时不同,不同的工艺产生的延时不同,不同的温度会导致延时不同。生的延时不同,不同的温度会导致延时不同。数字电路基本参数n有时钟信号的电路(时序电路)ClkQD DDCLKQDQThTsuTcoTsu:建立时间,表示在时钟有:建立时间,表示在时钟有效沿前数据维持不变的时间效沿前数据维持不变的时间Th:保持时间,表示在时钟有:保持时间,表示在时钟有效沿后数据维持不变的时间效沿后数据维持不变的时间Tco:输出延时,表示在时钟有:输出延时,表示在时钟有效沿后数据输出的时间
6、效沿后数据输出的时间数字电路基本参数nTsu、Th是对输入信号中数据和时钟相位的表征,通常我们提及这两个参数时,一般是指器件对输入的要求,即要求输入的最小建立时间(Tsu)和最小保持时间(Th);n触发器的这两个参数只与器件的工艺和温度有关n当我们的输入的相位要求不能满足该要求时,触发器的值将不能达到预期结果(即我们常说的不确定)。数字电路基本参数n对于一个触发器来说,Tsu+Th为一个常量。由于有外围电路的作用,我们所看到的最小建立时间(Tsu)和最小保持时间(Th)可能有变化。例如:数字电路基本参数n触发器的Tco参数只与器件的工艺和温度有关n由于时钟输入或数据输出电路上的延时,器件或模块
7、的Tco可能会有变化,例如:数字电路基本参数n我们现在已经学习了数字电路的基本参数:TDelayTsuThTcofmax?数字电路基本参数n我们在电路中,实际上触发器和组合逻辑是以以下结构存在的:ClkDQDDQQDTcoTDelayTsuT=Tco+TDelay+Tsu当时钟沿有效时,经过时间当时钟沿有效时,经过时间T,信号传达到第二个寄存器。,信号传达到第二个寄存器。要使电路能可靠工作,必须要使电路能可靠工作,必须Tclk T,如果满足此要求,时钟频率为如果满足此要求,时钟频率为fClk 1/T;则;则fmax=1/T。同步数字电路设计n在数字电路中为什么要使用同步数字电路?n可靠性n处理
8、速度同步数字电路设计n异步电路(组合逻辑电路):C0C1C2C3CnT0T1T3TnTDelay=T0+T1+T2+T3+TnT2TDelay同步数字电路设计n同步电路(时序电路):C0C1C2C3CnDFFDFFDFFDFFT0T1T3TnT2TDelayClkTDelay=n TClk+Tco同步数字电路设计Tdelay与组合逻辑的延时(与组合逻辑的延时(Tn)无关)无关TDelay=n TClk+Tco因为因为fmax=1/(Tco+Tn+Tsu),),Tn为触发为触发器间的组合逻辑的最大的延时器间的组合逻辑的最大的延时由于由于Tco 和和 Tsu在同一芯片中基本上是个常数,在同一芯片中
9、基本上是个常数,所以所以Tn直接影响直接影响fmax。当当TClk Tn,组合逻辑的延时与,组合逻辑的延时与TDelay 无关。无关。是是?否否?同步数字电路设计n假设因为温度、工艺或布线改变,造成电路的延时改变了t,对于异步电路:T=(T1+t)+(T2+t)+(T3+t)+(T4+t)+(Tn+t)=T1+T2+T3+T4+Tn+t n=TDelay+t n 变化引起的延时为t n 同步数字电路设计n对于同步数字电路T=n TClk+(Tco+t)=(n TClk+Tco)+t=TDelay+t变化引起的延时为t所以同步数字电路的可靠性和移植性明显优于所以同步数字电路的可靠性和移植性明显优
10、于异步电路异步电路同步数字电路设计n另外,由于同步数字电路只对在时钟有效沿附近的数据“感兴趣”,所以它可以将由于干扰造成的数据干扰和由于电路竞争冒险产生的毛刺“过滤”掉,从而大大的提高了电路的可靠性。同步数字电路设计n同步电路使电路的速度是提高了还是降低了?快?快?慢?慢?同步数字电路设计n变慢了,为什么?异步电路:异步电路:TDelay=T0+T1+T2+T3+Tn同步电路:同步电路:TDelay=n TClk+Tco为了使同步电路的触发器工作稳定,必须保证为了使同步电路的触发器工作稳定,必须保证Tclk Tmax,其中其中Tmax为为T0、T1、T2、T3 Tn中最大的一个中最大的一个同步
11、数字电路设计n变快了,为什么?n同步数字电路每间隔一个TClk可以处理一个数据,而异步电路需要每间隔Tdelay才能处理一个数据。n就单位时间内处理的数据量而言,同步数字电路可以远远大于异步电路。n所以我们说,使用同步数字电路的可以提高电路的运行速度。正确的入门方法n从电路图设计入手n可以很清楚电路是如何实现的;n可以很清楚电路结构,或会有意识的对电路的模块进行划分;n如果从语言入手n必须熟悉电路,能很容易的读懂电路;n对电路的不同描述方式,要清楚综合工具的综合结果正确的入门方法n规范设计是入门的基础n规范设计可以避免一些电路不可靠因素;n真正可重用的电路绝对是规范的;n电路的功能实现不是最有
12、价值的东西,最有价值的是电路实现的思路;n如果你的电路大家都看不懂,那绝对是“垃圾”;正确的入门方法n注重仿真n所有的电路都是调试出来的,不是设计出来的;n不懂仿真,则永远无法成为电路设计高手;n测试向量的完整性可以大大缩短硬件的调试时间。电路设计规则n命名规则n注释规则n电路描述规则命名规则(1)n名字必须有确定意义,且具有可读性。n如:nSysClk、Reset、SecondCnt、CnlADatan不能取如下名字:nX、A、B命名规则(2)n名字之间的单词的第一个字母使用大写。n如:nTotalNumber、CalcError、FramerSearch、InputDataCountern
13、不要将名字中全部取为大写或小写,如:nCPUADDRESS、ramreaddata、fifoemptynTotalnumber、calcerror、framersearch、inputdatacounter、BASEADDR命名规则(3)n在命名中使用_N的后缀表示低电平有效信号或下降沿有效的时钟,没有_N的信号均表示高电平有效或上升沿有效n如:nReset_N,TxClk_NnSyncLos=!FramerSync命名规则(4)n在命名中使用_C的后缀或全部大写表示常量。n如:nDataWidth_C、DATAWIDTHnBuffDepth_C、BUFFDEPTH命名规则(5)n在命名中使用
14、_B的后缀表示双向的变量或信号。n如:nCpuData_B 表示CPU数据总线是双向的。命名规则(6)n使用恰当的缩写,缩短名字的长度,同时不降低名字的可读性n如:nRd ReadWrWritenEn EnableAva AvailablenAddrAddressAlm AlarmnClkClockRstResetnInInputOutOutput命名规则(7)n名字中尽可能不出现数字,除非必须出现。n如:nE1Framer命名规则(8)n避免单独使用以下字母和数字,更不允许在同一文件中的名字中使用以下字母和数字区别变量或信号名:nI、l、1nO、0、onS、5nG、6n如:nRdCnt1、R
15、dCntl、RdCntI命名规则(9)n当文件中只包含一个模块时,文件名和模块名保持一致。n当文件中有多个相关模块且没有顶层模块,模块名须与各模块的功能相关n当一个模块中的子模块在别的电路中不会使用时,可以将子模块和顶层模块放置在一起,文件名和顶层模块名相同。注释规则n代码注释是为了增强代码的可读性,注释的内容要求言简意赅。n注释分为:n文件或模块注释n变量或信号注释n电路注释n特殊功能注释n其他注释数字电路设计流程n功能分析和模块定义n确定重要信号传递方案n代码设计和验证功能分析和模块定义n自顶向下设计;n对项目的各功能进行系统的分析,列出数字电路需要完成的各个功能;n按以下原则划分各功能模
16、块:n功能确定n接口最简n成对原则n模块最少n定义模块间的接口;n再将每个模块按以上原则和方法划分功能子模块,直到模块最小化功能分析和模块定义n举例:n设计一个SDH的四路E1映射的电路;n电路接收信号为SDH开销处理后的并行数据和定时信号;n上行总线接口为两条,每条的信号完全一样:n输入:CLK19、SPE、C1J1V1n输出:ADD、DATA7:0、PARn下行总线接口为两条,每条的信号全是输入且完全一样:nCLK19、SPE、C1J1V1、DATA7:0、PAR功能分析和模块定义n设计一个SDH的四路E1映射的电路;(续)nCPU总线用于电路设置和告警处理n输入:ADDR7:0、RD、W
17、R、CEn双向:DATA7:0nE1接口为4条相同的接口信号n输入:RPO(PCO)、RNO(RDO)n输出:TPI(TCI)、TNI(TDI)n要求完成以下功能:n每个E1可以在任意的TU12位置分插n上行时序可以在上行和下行四个时序中任意选择功能分析和模块定义n设计一个SDH的四路E1映射的电路;(续)n要求完成以下功能:(续)nE1接口可选正/负双轨模式和NRZ/时钟模式n根据下行总线工作状态实现倒换功能分析和模块定义nSDH介绍功能分析和模块定义n电路设计框图定时处理定时处理TIMEPOCESSCPU接口接口CPUINTERFACE上总线形成上总线形成ADDGENERATE端口映射端口
18、映射PORTMAP端口映射端口映射PORTMAP端口映射端口映射PORTMAP端口映射端口映射PORTMAP下行数据总线下行数据总线上行和下行控制总线上行和下行控制总线CPU数据、地址数据、地址和控制总线和控制总线上行数据总线上行数据总线E1接口接口QE1MAP功能分析和模块定义n各模块功能确定检查n模块间接口最简检查n成对设计检查n模块最少检查n定义模块间的接口确定重要信号传递方案n确定电路的输入输出要求n确定模块间的输入输出要求n重要信号传递过程n定时信号n公用信号确定重要信号传递方案n举例:代码设计和验证n自底向上设计n每一模块根据功能要求、接口定义和重要信号传递方案进行代码设计n对每个
19、模块进行仿真n对成对模块进行联调n将所有模块拼接并进行系统验证电路验证方法n验证的目的是为了保证电路提供的功能特性的正确性;n验证的目标是证明设计没有错误;n验证过程需要权衡以下方面:n验证时间n验证成本n验证充分电路验证方法n验证手段;n功能验证的方法;n验证计划的建立;验证手段n功能验证(功能仿真)n功能验证是设计验证的主要形式;n功能验证需要进行代码覆盖率的检查;n静态时序分析n检查电路中触发器的建立和保持时间,以及基于路径的时延要求;n时序仿真n形式验证功能验证(功能仿真)n功能仿真的目的主要是为了保证设计的RTL级的描述和要求的特性一致;电路设计输入激励输出响应测试平台功能验证(功能
20、仿真)n功能验证策略一:比较法电路设计(RTL描述)输入激励比较输出响应测试平台电路设计(行为描述)功能验证(功能仿真)n举例:n设计一个带异步复位的计数器,使用比较法进行仿真,并检查代码覆盖率功能验证(功能仿真)n功能验证策略二:预测法电路设计输入激励比较输出响应测试平台预测结果功能验证(功能仿真)n举例:n设计一个带异步复位的计数器,使用预测法进行仿真,并检查代码覆盖率功能验证的方法n黑盒法:n不知道实现细节,所有验证内容通过对设计对外接口完成的;n白盒法:n对设计内部结构和细节非常清楚,并可以进行完全的控制和观察;n灰盒法:n知道细节的情况下,进行黑盒验证。功能验证的方法n一般情况,对模
21、块测试进行白盒测试或灰盒测试;n系统测试使用黑盒测试或灰盒测试。TestBench简介n描述TestBench流程n产生输入激励n例化测试对象n检查测试对象输出n输出测试结果验证计划的建立n一个验证计划一般需要具备:n明确验证目标;n确定验证手段、方法和策略;n结果检查手段;n验证结果的质量标准;n验证进度安排和管理;n验证小组成员的职责和分工。电路实现n数字电路中时钟处理方法n接口电路n运算电路n数据流处理电路数字电路中时钟的处理方法n数字电路中时钟是所有信号的参考,没有时钟,所有的数字信号都没有意义;n一个数字电路中时钟的处理方案直接影响数字电路的功能实现和可靠性;n一般情况,我们在同一个
22、设计中使用唯一的系统时钟(除接口电路);n当系统中多个时钟时,我们必须对有些时钟进行处理。数字电路中时钟的处理方法n当有多个时钟数字电路,且有一个时钟(假设为CLKA)的速率大于其他时钟两倍以上,我们在接口部分就必须对其他时钟进行同步化处理,将其他时钟信息转换为和CLKA同步的允许信号。n这样处理的好处:n便于处理电路内部时序;n时钟间边界条件只在接口部分电路进行处理;数字电路中时钟的处理方法n同步化处理电路(时钟沿提取电路):其输出波形:数字电路中时钟的处理方法n这么会这样?问题出在哪?MAX7000MAX300AFLEX1K对对CLKEN和和CLK分别进行计数,比分别进行计数,比较计数的值
23、便能知道较计数的值便能知道CLKEN是否能是否能真实反映真实反映CLK。输入的激励:输入的激励:SysClk周期为周期为20ns;Clk周期为周期为58ns。数字电路中时钟的处理方法n当当TaTb,SysClk不能采集到不能采集到ClkEn;n当当TbTa,SysClk可能会两次采集可能会两次采集ClkEn。组合逻辑组合逻辑TaTbClkSysClkClkDQDQ数字电路中时钟的处理方法n解决方法?对于非同源时钟,为了保证电路的可靠性和移植性对于非同源时钟,为了保证电路的可靠性和移植性对于非同源时钟,为了保证电路的可靠性和移植性对于非同源时钟,为了保证电路的可靠性和移植性必须做如上处理。必须做
24、如上处理。必须做如上处理。必须做如上处理。数字电路中时钟的处理方法n前面电路是对时钟的上升沿进行同步化处理,如果是下降沿呢?数字电路中时钟的处理方法n提问:如何取的上升和下降沿数字电路中时钟的处理方法n当有多个时钟数字电路,但速率最快的时钟(假设为CLKA)的速率没有达到其它时钟频率的两倍,我们在接口部分就必须对其他时钟和数据通过FIFO进行隔离,并将其他时钟信息转换为和CLKA同步的允许信号。数字电路中时钟的处理方法n异步时钟和数据处理标准电路:nFIFO的深度最小需要的深度最小需要3n如果如果SYSCLKCLK,如何处理?如何处理?n如果内部电路不能运行在如果内部电路不能运行在CLK时钟频
25、率上,如时钟频率上,如CLK为为200MHz?数字电路中时钟的处理方法n对于间歇时钟,如果其最高频率小于所选的系统时钟的1/2:n用时钟沿提取电路对时钟进行同步化;n如果最高频率大于所选的系统时钟的1/2:n使用FIFO进行同步;n增大FIFO的深度;n或通过串并转换将数据转换成并行数据或宽度更宽的数据进行处理;数字电路中时钟的处理方法n选择系统时钟一般性原则:1.不大于内部电路能够运行的最高频率的时钟;2.连续的周期性时钟;3.在系统中频率最高的时钟;n当不能满足第二条时,必须保证时钟的间歇时间小于其他任何时钟的周期;n当不能保证第三条时,可以将数据进行串并转换成并行数据或宽度更宽的数据,从
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字电路 设计 经典 资料
限制150内