数字电路设计经典资料课件

上传人:仙*** 文档编号:241426191 上传时间:2024-06-25 格式:PPT 页数:171 大小:1.90MB
返回 下载 相关 举报
数字电路设计经典资料课件_第1页
第1页 / 共171页
数字电路设计经典资料课件_第2页
第2页 / 共171页
数字电路设计经典资料课件_第3页
第3页 / 共171页
点击查看更多>>
资源描述
数字电路设计1a内容提要n绪论n电路设计规则n电路设计流程n电路验证方法n电路实现n结束语2a绪论n认清数字电路设计n电路设计的三个层次n正确的入门方法n数字电路的基本参数n同步数字电路设计3a认清数字电路设计n电路设计是一门艺术n象艺术技巧一样,深不可测,奥妙无穷;n电路设计工程师和艺术家一样,有发挥创造性的无限空间;n电路设计所使用的“原料”和艺术作品一样,简单而且为所有人共知;n电路的表现形式和艺术作品一样,相同的内容,相同的目的,可能会有不同的表现形式。n4a认清数字电路设计n因为电路设计是一门艺术,所以n它不可以速成;n必须正确的入门方法;n必须经常重复练习;n在实现以前必须有完整的构思。5a认清数字电路设计n举例:n设计一个电路完成以下波形描述的功能。Clk0123D0QD0D1D2D3D1D2D3D0D1D2D3D0D1D2D3D0D1D2D30123012301236aCnt1.0认清数字电路设计n利用选择器完成电路功能MuxCntClkD0QD1D2D3Sel7a认清数字电路设计n利用移位寄存器完成电路功能CarryShiftCntClkD0QD1D2D3Load8a电路设计的三个层次n完成功能n能够完成电路要求完成的功能n工作可靠n电路的工作对外围环境要求最低;n电路不受温度、工艺等因数的影响n可重用(可移植)n能方便的在别的电路中使用9a电路设计的三个层次n举例n设计一个UART的接收电路n波特率19.2,偶校验,1位停止位起始位数据Uart_RxD7D6D5D4D3D2D1D0CD0校验位停止位10a电路设计的三个层次n定义输入输出端口n输入:UartRx、SysClk、Readn输出:Data、New、ErrUartDataUartRxSysClkNewReadErr11a电路设计的三个层次n功能实现(框图)下降沿下降沿检测检测接收定接收定时时控制控制采集采集时时钟钟生成生成移位寄移位寄存存奇偶奇偶/停停止位止位标标志志产产生生UartRxSysClkReadErrDataNew12a电路设计的三个层次n完成功能(电路图)13a电路设计的三个层次n该电路能完成要求的功能,我们的设计已经结束n我们来看下面情况:n发送的时钟和接收的时钟源不同步n传输中出现干扰n读信号和接收时钟不同步n接收电路伪同步这些都是可靠性问题14a电路设计的三个层次n我们修改了电路,电路工作已经十分可靠,现在我们可以说设计结束了。n如果我们我们接到另一个项目需要做一个URAT,要求有些不同:n波特率、校验位、停止位可变;nCPU中断响应慢这么办?15a电路设计的三个层次n所以我们在设计电路时,最好能使电路可重用,或尽可能简单的修改原设计的情况下对电路进行移植。16aTDelay数字电路基本参数n无时钟信号的电路(组合逻辑)In1In2In3Out对对于于组组合合逻辑逻辑的的电电路,在路,在电电路分析路分析时时只有只有输输入到入到输输出的延出的延时时(Tdelay),),由于由于电电路路实现实现的原因,不同的的原因,不同的输输入到入到输输出的延出的延时时不同,不同的工不同,不同的工艺产艺产生的延生的延时时不同,不同的温度会不同,不同的温度会导导致延致延时时不同。不同。17a数字电路基本参数n有时钟信号的电路(时序电路)ClkQD DDCLKQDQThTsuTcoTsu:建立:建立时间时间,表示在,表示在时钟时钟有有效沿前数据效沿前数据维维持不持不变变的的时间时间Th:保持:保持时间时间,表示在,表示在时钟时钟有有效沿后数据效沿后数据维维持不持不变变的的时间时间Tco:输输出延出延时时,表示在,表示在时钟时钟有有效沿后数据效沿后数据输输出的出的时间时间18a数字电路基本参数nTsu、Th是对输入信号中数据和时钟相位的表征,通常我们提及这两个参数时,一般是指器件对输入的要求,即要求输入的最小建立时间(Tsu)和最小保持时间(Th);n触发器的这两个参数只与器件的工艺和温度有关n当我们的输入的相位要求不能满足该要求时,触发器的值将不能达到预期结果(即我们常说的不确定)。19a数字电路基本参数n对于一个触发器来说,Tsu+Th为一个常量。由于有外围电路的作用,我们所看到的最小建立时间(Tsu)和最小保持时间(Th)可能有变化。例如:20a数字电路基本参数n触发器的Tco参数只与器件的工艺和温度有关n由于时钟输入或数据输出电路上的延时,器件或模块的Tco可能会有变化,例如:21a数字电路基本参数n我们现在已经学习了数字电路的基本参数:TDelayTsuThTcofmax?22a数字电路基本参数n我们在电路中,实际上触发器和组合逻辑是以以下结构存在的:ClkDQDDQQDTcoTDelayTsuT=Tco+TDelay+Tsu当当时钟时钟沿有效沿有效时时,经过时间经过时间T,信号,信号传传达到第二个寄存器。达到第二个寄存器。要使要使电电路能可靠工作,必路能可靠工作,必须须Tclk T,如果,如果满满足此要求,足此要求,时钟频时钟频率率为为fClk 1/T;则则fmax=1/T。23a同步数字电路设计n在数字电路中为什么要使用同步数字电路?n可靠性n处理速度24a同步数字电路设计n异步电路(组合逻辑电路):C0C1C2C3CnT0T1T3TnTDelay=T0+T1+T2+T3+TnT2TDelay25a同步数字电路设计n同步电路(时序电路):C0C1C2C3CnDFFDFFDFFDFFT0T1T3TnT2TDelayClkTDelay=n TClk+Tco26a同步数字电路设计Tdelay与与组组合合逻辑逻辑的延的延时时(Tn)无关)无关TDelay=n TClk+Tco因因为为fmax=1/(Tco+Tn+Tsu),),Tn为为触触发发器器间间的的组组合合逻辑逻辑的最大的延的最大的延时时由于由于Tco 和和 Tsu在同一芯片中基本上是个常数,在同一芯片中基本上是个常数,所以所以Tn直接影响直接影响fmax。当当TClk Tn,组组合合逻辑逻辑的延的延时时与与TDelay 无关。无关。是是?否否?27a同步数字电路设计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 28a同步数字电路设计n对于同步数字电路T=n TClk+(Tco+t)=(n TClk+Tco)+t=TDelay+t变化引起的延时为 t所以同步数字所以同步数字电电路的可靠性和移植性明路的可靠性和移植性明显优显优于于异步异步电电路路29a同步数字电路设计n另外,由于同步数字电路只对在时钟有效沿附近的数据“感兴趣”,所以它可以将由于干扰造成的数据干扰和由于电路竞争冒险产生的毛刺“过滤”掉,从而大大的提高了电路的可靠性。30a同步数字电路设计n同步电路使电路的速度是提高了还是降低了?快?快?慢?慢?31a同步数字电路设计n变慢了,为什么?异步异步电电路:路:TDelay=T0+T1+T2+T3+Tn同步同步电电路:路:TDelay=n TClk+Tco为为了使同步了使同步电电路的触路的触发发器工作器工作稳稳定,必定,必须须保保证证Tclk Tmax,其中,其中Tmax为为T0、T1、T2、T3 Tn中最大的一个中最大的一个32a同步数字电路设计n变快了,为什么?n同步数字电路每间隔一个TClk可以处理一个数据,而异步电路需要每间隔Tdelay才能处理一个数据。n就单位时间内处理的数据量而言,同步数字电路可以远远大于异步电路。n所以我们说,使用同步数字电路的可以提高电路的运行速度。33a正确的入门方法n从电路图设计入手n可以很清楚电路是如何实现的;n可以很清楚电路结构,或会有意识的对电路的模块进行划分;n如果从语言入手n必须熟悉电路,能很容易的读懂电路;n对电路的不同描述方式,要清楚综合工具的综合结果34a正确的入门方法n规范设计是入门的基础n规范设计可以避免一些电路不可靠因素;n真正可重用的电路绝对是规范的;n电路的功能实现不是最有价值的东西,最有价值的是电路实现的思路;n如果你的电路大家都看不懂,那绝对是“垃圾”;35a正确的入门方法n注重仿真n所有的电路都是调试出来的,不是设计出来的;n不懂仿真,则永远无法成为电路设计高手;n测试向量的完整性可以大大缩短硬件的调试时间。36a电路设计规则n命名规则n注释规则n电路描述规则37a命名规则(1)n名字必须有确定意义,且具有可读性。n如:nSysClk、Reset、SecondCnt、CnlADatan不能取如下名字:nX、A、B38a命名规则(2)n名字之间的单词的第一个字母使用大写。n如:nTotalNumber、CalcError、FramerSearch、InputDataCountern不要将名字中全部取为大写或小写,如:nCPUADDRESS、ramreaddata、fifoemptynTotalnumber、calcerror、framersearch、inputdatacounter、BASEADDR39a命名规则(3)n在命名中使用_N的后缀表示低电平有效信号或下降沿有效的时钟,没有_N的信号均表示高电平有效或上升沿有效n如:nReset_N,TxClk_NnSyncLos=!FramerSync40a命名规则(4)n在命名中使用_C的后缀或全部大写表示常量。n如:nDataWidth_C、DATAWIDTHnBuffDepth_C、BUFFDEPTH41a命名规则(5)n在命名中使用_B的后缀表示双向的变量或信号。n如:nCpuData_B 表示CPU数据总线是双向的。42a命名规则(6)n使用恰当的缩写,缩短名字的长度,同时不降低名字的可读性n如:nRd ReadWrWritenEn EnableAva AvailablenAddrAddressAlm AlarmnClkClockRstResetnInInputOutOutput43a命名规则(7)n名字中尽可能不出现数字,除非必须出现。n如:nE1Framer44a命名规则(8)n避免单独使用以下字母和数字,更不允许在同一文件中的名字中使用以下字母和数字区别变量或信号名:nI、l、1nO、0、onS、5nG、6n如:nRdCnt1、RdCntl、RdCntI45a命名规则(9)n当文件中只包含一个模块时,文件名和模块名保持一致。n当文件中有多个相关模块且没有顶层模块,模块名须与各模块的功能相关n当一个模块中的子模块在别的电路中不会使用时,可以将子模块和顶层模块放置在一起,文件名和顶层模块名相同。46a注释规则n代码注释是为了增强代码的可读性,注释的内容要求言简意赅。n注释分为:n文件或模块注释n变量或信号注释n电路注释n特殊功能注释n其他注释47a数字电路设计流程n功能分析和模块定义n确定重要信号传递方案n代码设计和验证48a功能分析和模块定义n自顶向下设计;n对项目的各功能进行系统的分析,列出数字电路需要完成的各个功能;n按以下原则划分各功能模块:n功能确定n接口最简n成对原则n模块最少n定义模块间的接口;n再将每个模块按以上原则和方法划分功能子模块,直到模块最小化49a功能分析和模块定义n举例:n设计一个SDH的四路E1映射的电路;n电路接收信号为SDH开销处理后的并行数据和定时信号;n上行总线接口为两条,每条的信号完全一样:n输入:CLK19、SPE、C1J1V1n输出:ADD、DATA7:0、PARn下行总线接口为两条,每条的信号全是输入且完全一样:nCLK19、SPE、C1J1V1、DATA7:0、PAR50a功能分析和模块定义n设计一个SDH的四路E1映射的电路;(续)nCPU总线用于电路设置和告警处理n输入:ADDR7:0、RD、WR、CEn双向:DATA7:0nE1接口为4条相同的接口信号n输入:RPO(PCO)、RNO(RDO)n输出:TPI(TCI)、TNI(TDI)n要求完成以下功能:n每个E1可以在任意的TU12位置分插n上行时序可以在上行和下行四个时序中任意选择51a功能分析和模块定义n设计一个SDH的四路E1映射的电路;(续)n要求完成以下功能:(续)nE1接口可选正/负双轨模式和NRZ/时钟模式n根据下行总线工作状态实现倒换52a功能分析和模块定义nSDH介绍53a功能分析和模块定义n电路设计框图定定时处时处理理TIMEPOCESSCPU接口接口CPUINTERFACE上上总线总线形成形成ADDGENERATE端口映射端口映射PORTMAP端口映射端口映射PORTMAP端口映射端口映射PORTMAP端口映射端口映射PORTMAP下行数据下行数据总线总线上行和下行控制上行和下行控制总线总线CPU数据、地址数据、地址和控制和控制总线总线上行数据上行数据总线总线E1接口接口QE1MAP54a功能分析和模块定义n各模块功能确定检查n模块间接口最简检查n成对设计检查n模块最少检查n定义模块间的接口55a确定重要信号传递方案n确定电路的输入输出要求n确定模块间的输入输出要求n重要信号传递过程n定时信号n公用信号56a确定重要信号传递方案n举例:57a代码设计和验证n自底向上设计n每一模块根据功能要求、接口定义和重要信号传递方案进行代码设计n对每个模块进行仿真n对成对模块进行联调n将所有模块拼接并进行系统验证58a电路验证方法n验证的目的是为了保证电路提供的功能特性的正确性;n验证的目标是证明设计没有错误;n验证过程需要权衡以下方面:n验证时间n验证成本n验证充分59a电路验证方法n验证手段;n功能验证的方法;n验证计划的建立;60a验证手段n功能验证(功能仿真)n功能验证是设计验证的主要形式;n功能验证需要进行代码覆盖率的检查;n静态时序分析n检查电路中触发器的建立和保持时间,以及基于路径的时延要求;n时序仿真n形式验证61a功能验证(功能仿真)n功能仿真的目的主要是为了保证设计的RTL级的描述和要求的特性一致;电路设计输入激励输出响应测试平台62a功能验证(功能仿真)n功能验证策略一:比较法电路设计(RTL描述)输入激励比较输出响应测试平台电路设计(行为描述)63a功能验证(功能仿真)n举例:n设计一个带异步复位的计数器,使用比较法进行仿真,并检查代码覆盖率64a功能验证(功能仿真)n功能验证策略二:预测法电路设计输入激励比较输出响应测试平台预测结果65a功能验证(功能仿真)n举例:n设计一个带异步复位的计数器,使用预测法进行仿真,并检查代码覆盖率66a功能验证的方法n黑盒法:n不知道实现细节,所有验证内容通过对设计对外接口完成的;n白盒法:n对设计内部结构和细节非常清楚,并可以进行完全的控制和观察;n灰盒法:n知道细节的情况下,进行黑盒验证。67a功能验证的方法n一般情况,对模块测试进行白盒测试或灰盒测试;n系统测试使用黑盒测试或灰盒测试。68aTestBench简介n描述TestBench流程n产生输入激励n例化测试对象n检查测试对象输出n输出测试结果69a验证计划的建立n一个验证计划一般需要具备:n明确验证目标;n确定验证手段、方法和策略;n结果检查手段;n验证结果的质量标准;n验证进度安排和管理;n验证小组成员的职责和分工。70a电路实现n数字电路中时钟处理方法n接口电路n运算电路n数据流处理电路71a数字电路中时钟的处理方法n数字电路中时钟是所有信号的参考,没有时钟,所有的数字信号都没有意义;n一个数字电路中时钟的处理方案直接影响数字电路的功能实现和可靠性;n一般情况,我们在同一个设计中使用唯一的系统时钟(除接口电路);n当系统中多个时钟时,我们必须对有些时钟进行处理。72a数字电路中时钟的处理方法n当有多个时钟数字电路,且有一个时钟(假设为CLKA)的速率大于其他时钟两倍以上,我们在接口部分就必须对其他时钟进行同步化处理,将其他时钟信息转换为和CLKA同步的允许信号。n这样处理的好处:n便于处理电路内部时序;n时钟间边界条件只在接口部分电路进行处理;73a数字电路中时钟的处理方法n同步化处理电路(时钟沿提取电路):其输出波形:74a数字电路中时钟的处理方法n这么会这样?问题出在哪?MAX7000MAX300AFLEX1K对对CLKEN和和CLK分分别进别进行行计计数,比数,比较计较计数的数的值值便能知道便能知道CLKEN是否能是否能真真实实反映反映CLK。输输入的激励:入的激励:SysClk周期周期为为20ns;Clk周期周期为为58ns。75a数字电路中时钟的处理方法n当当TaTb,SysClk不能采集到不能采集到ClkEn;n当当TbTa,SysClk可能会两次采集可能会两次采集ClkEn。组组合合逻辑逻辑TaTbClkSysClkClkDQDQ76a数字电路中时钟的处理方法n解决方法?对对对对于非同源于非同源于非同源于非同源时钟时钟时钟时钟,为为为为了保了保了保了保证电证电证电证电路的可靠性和移植性路的可靠性和移植性路的可靠性和移植性路的可靠性和移植性必必必必须须须须做如上做如上做如上做如上处处处处理。理。理。理。77a数字电路中时钟的处理方法n前面电路是对时钟的上升沿进行同步化处理,如果是下降沿呢?78a数字电路中时钟的处理方法n提问:如何取的上升和下降沿79a数字电路中时钟的处理方法n当有多个时钟数字电路,但速率最快的时钟(假设为CLKA)的速率没有达到其它时钟频率的两倍,我们在接口部分就必须对其他时钟和数据通过FIFO进行隔离,并将其他时钟信息转换为和CLKA同步的允许信号。80a数字电路中时钟的处理方法n异步时钟和数据处理标准电路:nFIFO的深度最小需要的深度最小需要3n如果如果SYSCLKCLK,如何如何处处理?理?n如果内部如果内部电电路不能运行在路不能运行在CLK时钟频时钟频率上,如率上,如CLK为为200MHz?81a数字电路中时钟的处理方法n对于间歇时钟,如果其最高频率小于所选的系统时钟的1/2:n用时钟沿提取电路对时钟进行同步化;n如果最高频率大于所选的系统时钟的1/2:n使用FIFO进行同步;n增大FIFO的深度;n或通过串并转换将数据转换成并行数据或宽度更宽的数据进行处理;82a数字电路中时钟的处理方法n选择系统时钟一般性原则:1.不大于内部电路能够运行的最高频率的时钟;2.连续的周期性时钟;3.在系统中频率最高的时钟;n当不能满足第二条时,必须保证时钟的间歇时间小于其他任何时钟的周期;n当不能保证第三条时,可以将数据进行串并转换成并行数据或宽度更宽的数据,从而降低非系统时钟的频率。n如果不能如果不能满满足第一条,怎么足第一条,怎么办办?83a数字电路中时钟的处理方法n对于内部的低速时钟,一般常见的方法:分频器模块A模块B模块CSysClkn这这种种结结构在很多情况下不会出构在很多情况下不会出问题问题,但如果模,但如果模块间块间有数据交有数据交换换时时,其定,其定时时特性的特性的评评估将比估将比较较困困难难;n当当时钟时钟很多很多时时,对时钟对时钟的布的布线线要求要求较较高;高;84a数字电路中时钟的处理方法n最佳处理方法:分频器模块A模块B模块CSysClkClkEnAClkEnBClkEnCn这这种种结结构使构使电电路中的模路中的模块间块间的数据交的数据交换换非常非常简单简单;n对电对电路的静路的静态时态时序分析序分析变变的的简单简单且易于且易于调调整;整;n由于由于对对工工艺艺和布和布线线的要求降低,的要求降低,电电路的可靠性和移植性大大增路的可靠性和移植性大大增加;加;n使内部使内部电电路路设计设计更理想化和理更理想化和理论论化。化。85a接口电路n接口电路功能和处理原则n接口处理电路使用的基本元素n输入接口电路n输出接口电路n双向接口电路n举例:CPU接口电路86a接口电路功能和处理原则n功能:n提供和处理与芯片或FPGA接口的电路时序;n对可能有的干扰进行过滤;n对非系统时钟进行处理;n如果需要提供3态控制;n处理原则:n统一到一个系统时钟;n外围时序和相位关系不变。87a接口电路功能和处理原则n接口电路位置示意图:内部内部电电路路接口接口电电路路外外围电围电路路n接口接口电电路隔离了外路隔离了外围围电电路和内部路和内部电电路,它路,它不改不改变变外外围电围电路的路的时时序和相位要求;序和相位要求;n接口接口电电路使内部路使内部电电路路有有统统一的系一的系统时钟统时钟;n使内部使内部电电路中没有双路中没有双向向变变量和三量和三态态信号信号n使内部使内部电电路接收的信路接收的信号更号更稳稳定;定;n总总之,接口之,接口电电路使内路使内部部电电路的路的处处理更理想理更理想化和理化和理论论化。化。88a接口处理电路使用的基本元素n三态门:n将外围的双向电路引入内部电路,使内部电路中没有三态电路;n输出三态与外围电路中信号进行线或或线与;n三态输出在一般情况下输出高阻,只有必须输出时才输出数据,避免与外围电路发生冲突。89a接口处理电路使用的基本元素n三态门:EnvccEnvccEn双向接口双向接口线线与与线线或或90a接口处理电路使用的基本元素n透明锁存器(Latch):n在数字电路设计中,尽可能不使用Latch;nLatch以下条件同时存在的情况下使用:n要锁存的数据在数据标志(如读信号)的上升沿和下降沿之间可能变化;n内部电路在数据标志的上升沿和下降沿之间需要使用要锁存的数据;n内部电路在数据标志结束后可能还需要使用要锁存的数据;91a0 10 1001100接口处理电路使用的基本元素n为什么我们需要尽可能不使用Latch?Latch的波形Latch的结构EnDQLacthmux01Sel1DQ1 092an确认Latch使用条件是否完全具备;n如果有任意一条不具备,使用别的电路代替;n如何避免使用Latch?接口处理电路使用的基本元素93a避免使用Latch(1)n要要锁锁存的数据在数据有效存的数据在数据有效标标志(如志(如读读信号)的上升沿信号)的上升沿和下降沿之和下降沿之间间可能可能变变化;化;解决解决办办法:法:使用数据有效使用数据有效标标志志(Enable)第一个沿第一个沿进进行行锁锁存。存。Data(内部内部)EnableData上次上次锁锁存数据存数据本次数据本次数据EnableDataData(内部内部)上次上次锁锁存数据存数据本次数据本次数据使用使用Latch的情况的情况不使用不使用Latch的情况的情况94a避免使用Latch(2)n内部内部电电路在数据路在数据标标志的上升沿和下降沿之志的上升沿和下降沿之间间需要使用需要使用要要锁锁存的数据;存的数据;解决解决办办法:法:使用数据有效使用数据有效标标志志(Enable)第二个沿第二个沿进进行行锁锁存。存。不使用不使用Latch的情况的情况EnableDataData(内部内部)本次数据本次数据使用使用Latch的情况的情况要求要求输输出数据的位置出数据的位置OutputData(内部内部)EnableData要求要求输输出数据的位置出数据的位置Output本次本次锁锁存数据存数据95a锁锁存数据存数据避免使用Latch(3)n内部内部电电路在数据路在数据标标志志结结束后可能束后可能还还需要使用要需要使用要锁锁存的存的数据;数据;解决解决办办法:法:使用数据有效使用数据有效标标志志(Enable)控制数据控制数据输输入入不使用不使用Latch的情况的情况EnableDataData(内部内部)本次数据本次数据使用使用Latch的情况的情况使用数据的位置使用数据的位置EnableDataData(内部内部)使用数据的位置使用数据的位置数据有效数据有效96an确认Latch使用条件是否完全具备;n如果有任意一条不具备,使用别的电路代替;n如果全部具备,确认系统中是否有比数据有效标志快3倍以上的时钟;n如果有,使用该时钟锁存数据;n如何避免使用Latch?接口处理电路使用的基本元素97a接口处理电路使用的基本元素EnableDataD0D1D1D0Q0Q1使用数据位置使用数据位置使用数据位置使用数据位置QOutputSysClkQD1D0Q1Q0使用数据位置使用数据位置使用数据位置使用数据位置OutputQENDEnableDataQQENDEnableDataSysClkQ98an确认Latch使用条件是否完全具备;n如果有任意一条不具备,使用别的电路代替;n如果全部具备,确认系统中是否有比数据有效标志快3倍以上的时钟;n如果有,使用该时钟锁存数据;n如何避免使用Latch?接口处理电路使用的基本元素n如果没有,只能用如果没有,只能用Latch或其替或其替换电换电路。路。99a接口处理电路使用的基本元素nLatch替换电路GateDataSysClkQENDQ10实际实际波形波形实际电实际电路路Latch是否是否可以不用?可以不用?100a接口处理电路使用的基本元素n移位寄存器:n当内部电路的处理速度较慢,通常使用移位寄存器进行速率变换;n一般情况下,只有当系统时钟的频率小于数据时钟,才在接口电路中使用移位寄存器,否则,将在内部电路中使用;n移位寄存器在接口电路中主要用于串并转换和并串转换。101a接口处理电路使用的基本元素n移位寄存器:并串转换串并转换102a接口处理电路使用的基本元素n滤波器:n当输入信号不稳定或有干扰,可以使用滤波器过滤到不需要的信号;n滤波器的根据采集时钟和过滤对象的速率倍数,选择不同的滤波器形式;n根据输入信号的特点,可以对滤波器进行不同的修改和调整。103a接口处理电路使用的基本元素n滤波器(1):n仿真波形104a接口处理电路使用的基本元素n滤波器(2):n仿真波形105a接口处理电路使用的基本元素n滤波器(3):n仿真波形106a接口处理电路使用的基本元素nFIFO(先进先出存储器):nFIFO在接口电路中的主要作用是不同时钟间进行隔离;nFIFO在接口电路有时也用作速率调整;n在接口电路中,FIFO的深度由具体情况而定,一般情况下都比较浅;nFIFO工作在非空非满状态,所以电路中基本不需要空满判断,只需对地址相等进行复位即可。107a接口处理电路使用的基本元素nFIFO(先进先出存储器):写地址写地址计计数器数器RAM读读地址地址计计数器数器写写时钟时钟读时钟读时钟复位复位复位复位读读地址地址读读地址地址复位复位电电路路写数据写数据读读数据数据108a接口处理电路使用的基本元素n时钟恢复电路:n时钟恢复电路的作用主要是从有时钟信息的串行码流中分离出时钟;n一般情况电路需要事先知道串行码流的速率,在接收电路中产生一个与码流速率相同的时钟;再使产生的时钟与输入的码流中的时钟信息同步。109a接口处理电路使用的基本元素n时钟恢复电路:时钟时钟生成器生成器同步信号同步信号串行数据串行数据系系统时钟统时钟恢复的恢复的时钟时钟110a接口处理电路使用的基本元素n三态门;n透明锁存器(Latch);n移位寄存器;n滤波器;nFIFO;n时钟恢复电路。111a输入接口电路n输入接口的要求:n输入接口电路的输入时序和相位关系必须严格满足外围电路的要求;n输入接口电路的输出需统一为宽度为一个系统时钟周期的时钟允许信号(ClkEn)和一个数据或数据组输出;n输入接口电路必须保证输出的数据可靠和稳定;n输入接口电路必须避免过多的处理数据,处理数据的功能有内部电路去完成。112a1外部定外部定时时型型DataClkDataClkEn输入接口电路n输入接口的不同型式:2内部定内部定时时型型DataClkDataClkEn3隐隐含定含定时时型型DataDataClkEn4数据定数据定时时型型DataDataClkEn113a输入接口电路n所有形式我们均可等效为:DataClkSysClkDataClkEn为什么?时钟时钟生成生成内部内部时钟时钟型型隐隐含定含定时时型型定定时时产产生生时钟时钟提取提取数据定数据定时时型型所以我所以我们们只要只要讨论讨论如何如何处处理外部理外部时钟时钟型型电电路即路即可解决所有可解决所有输输入接口入接口电电路的路的问题问题114a输入接口电路n输入接口电路:DataClkSysClkDataClkEn数据数据锁锁存存有效沿有效沿提取提取数据数据锁锁存存EnDClkDClk数据数据移位移位时钟时钟滤滤波波数据数据锁锁存存EnDClkDClk有效沿有效沿提取提取数据数据滤滤波波时钟时钟滤滤波波数据数据锁锁存存EnDClkDClk有效沿有效沿提取提取相位相位适适应应时钟时钟滤滤波波数据数据锁锁存存EnDClkDClk有效沿有效沿提取提取SysClk速率大于速率大于Clk的的速率速率2倍以上倍以上SysClk速率大于速率大于Clk的的速率速率4倍以上倍以上FIFO数据数据锁锁存存EnDClkDWrRdSysClk速率不小于速率不小于Clk但小于的速率但小于的速率2倍倍SysClk速率小于速率小于Clk的的速率速率数据数据移位移位FIFO数据数据锁锁存存EnDClkDClkDRdWr计计数器数器D115a输出接口电路n输出接口的要求:n输出接口电路的输出时序和相位关系必须严格满足外围电路的要求;n输出接口电路的输入需统一为宽度为一个系统时钟周期的时钟允许信号(ClkEn)和一个数据或数据组输入;n输出接口电路必须避免过多的处理数据,处理数据的功能有内部电路去完成。116a输出接口电路n输出接口电路的不同型式:1外部定外部定时时型型DataClkEnSysClkDataClk2内部定内部定时时型型DataClkEnSysClkDataClk所有型式我所有型式我们们均可以把它均可以把它等效等效为为外部定外部定时时型?型?117a输出接口电路n输出接口电路DataClkEnSysClkDataClk有效沿有效沿提取提取数据数据锁锁存存(处处理理)DEnClkEnSysClk速率大于速率大于Clk的的速率速率4倍以上倍以上数据数据锁锁存存(处处理理)有效沿有效沿提取提取数据数据锁锁存存ClkDDEnClkEnSysClk速率大于速率大于Clk的的速率速率2倍以上倍以上FIFO数据数据锁锁存存DDWrClkRdEnClkSysClk速率大于速率大于Clk的的速率但不小于速率但不小于Clk数据数据移位移位FIFODDWrEnClkRdEnEnClk计计数器数器LoadRdSysClk速率小于速率小于Clk的的速率速率118a双向接口电路n双向接口的要求:n双向接口电路的输入部分必须满足输入接口要求;n双向接口电路的输出部分必须满足输出接口要求;n双向接口电路的三态控制部分必须满足输出接口要求;n双向接口电路的输入部分须对数据进行“分拣”,只对需要处理的数据“感兴趣”,其他数据一律“视而不见”;n双向接口电路的三态控制部分必须掌握“能不输出就不输出”的原则,避免与外围电路冲突;119a举例:CPU接口电路nCPU接口电路的波形CpuWrCpuALECpuAddrAddr_LAddr_HCpuDataDataCpuRdAddr_LAddr_H写周期写周期读读周期周期120a举例:CPU接口电路n电路框图CpuWrCpuRdCpuALECpuAddrCpuDataSysClkWrEnWrDataAddressRdDataRdClr相位提取相位提取相位提取相位提取数据数据锁锁存存数据数据锁锁存存三三态态控制控制数据数据锁锁存存Addr_LAddr_H121a举例:CPU接口电路n实际电路图122a举例:CPU接口电路写入写入清零清零CpuWrCpuALECpuAddrAddr_LAddr_HCpuDataDataCpuRdAddr_LAddr_HSysClkWrEnRdClrAddrLAddrHWrDataRdDataAddr_LAddr_LAddr_HAddr_HRdDataWrData0RdData123a举例:CPU接口电路n实际波形:低位低位地址地址高位高位地址地址高位高位地址地址低位低位地址地址Data=H5AAddr=H55AAData=HA5Addr=HAA55124a运算电路n基本元素n简单运算电路n乘法器n除法器n平方根n复杂运算电路设计方法125a基本元素n加法器n加法器由于进位链的存在所以其速度随着位数的增加而减少;n加法器可以完成以下基本功能:C=A+BABCABC+加法器加法器C=A-BABCA-BC+减法器减法器C=C+BABCBC+累加器累加器C=C+1ABC1C+计计数器数器126a基本元素n减法器加适当电路即为比较器:Overflow=1:A BC=0:A=B127a基本元素n移位器:n在运算电路中它主要完成以下基本功能:Q=D 2nABCnQ乘法器乘法器DQ=D 2nABCnQ除法器除法器DQ=Q 2ABC1Q右移移位寄存器右移移位寄存器Q=Q 2ABC1Q左移移位寄存器左移移位寄存器128anQmDm基本元素n移位器电路单元框图:+m选择选择器器锁锁存器存器nQmDm-m选择选择器器锁锁存器存器129a基本元素n移位器实际电路(4bit):130a基本元素n移位器仿真结果:左移左移右移右移131a基本元素n移位寄存器:n移位器的特例;n是运行速度最快的电路;n它可实现连续乘2或除2的运算;n实际的运算电路中最常使用;n在电路实现过程中,较多的情况是固定的乘以或除以2的N次方,如何实现?132a基本元素n选择器:n在运算电路中大量使用选择器完成运算功能;n由于数字电路的特征,选择器在电路中相当于完成阶越函数的功能;n硬件描述语言中的列表、分支语句在电路实现上大部分都翻译成选择器。133a基本元素n加法器/减法器/比较器n移位器/移位寄存器n选择器134a简单运算电路n乘法器:nA B=Cn用4bit电路为例nC=A B0+A 2 B1+A 4 B2+A 8 B3 x2x4x8xxxx+B1B0B2B3AC135a简单运算电路n实际电路:136a简单运算电路n实际波形:137a简单运算电路n该电路的速度较慢,一般使用时需要多级流水线,我们比较以下使用流水线的对速度的影响:0F=31.44MHzT=31.8ns6F=125.0MHzT=8ns2F=67.11MHzT=14.9ns4F=97.08MHzT=10.3ns8F=125.0MHzT=8ns1F=40.98MHzT=24.4ns138a简单运算电路n循环运算的乘法器:nC=A B0+A 2 B1+A 4 B2+A 8 B3 x+CntABStartCEnd139a简单运算电路n实际电路:140a简单运算电路n实际波形:141a简单运算电路n除法器:n是乘法器的逆运算,所以我们从乘法入手分析如何实现;142a简单运算电路n实际电路:143a简单运算电路n仿真波形:n由于在电路运算时有大量的进位和运算,所以该电路运算速度较慢,一般情况我们可以在每一级的计算过程中加入触发器,以改善电路的运行频率。144a简单运算电路n加了触发器的除法器单元电路:n检查检查仿真波形;仿真波形;n如何如何让电让电路路产产生数据生数据计计算算完成完成标标志;志;n如何加快如何加快电电路的运算效率;路的运算效率;145a简单运算电路n除法器:n在数字电路的实现中,为了节省资源,除法器一般情况都是使用循环运算法。-DFFNotCntABCStartEndMod146a简单运算电路n实际电路:147a简单运算电路n仿真波形:148a简单运算电路n平方根电路:n平方根电路是平方电路的逆运算,我们先从一个数的平方入手:149a简单运算电路n电路实现:n仿真波形:150a简单运算电路n有流水线的平方根电路仿真:151a复杂运算电路计算n在电路实现中,可能会遇到一些复杂的运算电路,一般可以采用以下方法:n循环运算法;n级数分解法;n查表法;n查表/修正法;n152a数据流处理n数据流处理基本方法n起始位置153a数据流处理基本方法n数据流的基本特征是数据结构重复的周期性出现;n由于数据结构重复出现,所以每段数据的处理方法均相同,一般都是简单重复;n在电路中一般数据流的处理有:n数据转换(串并转换、编解码);n数据合并/分解;n数据流向控制;154a数据流处理基本方法n由于数据结构的周期性出现,所以在数据处理是的关键是数据定位;n数据定位即是确定当前数据的分组、类型或内容;n例如:Uart_Rx起始位C校验位停止位数据D7D6D5D4D3D2D1D0这这个数据流表示的数据是什么?个数据流表示的数据是什么?155a数据流处理基本方法n数据定位的关键是起始位置的确定;n当起始位置确定后,其他位置根据数据结构就可确定;n当起始位置确定后,确定其他数据位置的电路如何实现?156a起始位置n起始位置的定位方式:n信号定位(如SPI接口和Utopia接口);n循环定位(如E1、SDH);n标志定位(如HDLC和以太网);n157a起始位置n信号定位:n信号定位是最基本的也是最直接的起始位置定位方式;n由于它需要占用最少一根信号线,所以在长距离或连线比较紧张的情况下很少使用;n一般情况下,它用于电路内部连接或芯片间连接(SPI),也有用于板间连接(MII)。n在电路实现中,为了方便模块间的信号传递,我们一般将其他定位方式转换为该种方式。158a起始位置n循环定位:n循环定位在对时间要求较高的场合使用;n循环定位遵循严格的时间要求,在确定的时间其数据结构就要重复一次;n一般情况下,起始位置循环定位的数据流的起始位置有一固定的帧头,如E1的1B;n电路在定位帧头时,只需在数据流中检测到帧头后,计数一个帧间隔,如果发现帧头重复出现,就可确定该位置为起始位置;否则认为是伪定位,需要重新搜索帧头;159a起始位置n这样做仍然会搜索到伪帧头,所以在实际应用中,帧头搜索过程都有严格规定;n例如E1帧头的搜索流程:n在间隔256个时钟的相同位置,连续4帧搜索到帧头,即帧同步;n在帧同步状态下,连续3帧没有在0时隙发现帧头,即帧失步,重新搜索帧头;n在同步情况下,如果有CRC4校验且CRC4校验在连续2000帧数据中一直有错,也需进入失步状态,并重新搜索帧头;(我记不清具体数据和要求)160a起始位置n标志定位:n在数据流中帧头具有唯一的标志;n为了避开有效载荷中的数据和标志相同,一般需要将有效载荷中与标志相同的数据进行转换,保证接收端在识别数据时不会当成帧头;n由于数据会因为和帧头相同而进行转换,所以一般使用标志定位的数据流的长度不定,如HDLC;n也有采用将所有数据重新编码,帧头使用特有的编码的方式来识别帧头,如4B5B、8B10B编码;161a起始位置n当数据的起始位置确定以后,根据起始位置通过计数器,我们就可“解读”数据流中的任何位置的数据;n如在E1中,在帧头数据结束后紧跟的8个数据即为1时隙的数据,在其后第84bit至89bit即为16时隙的数据;n在如在以太网的数据中,在开始的6个字节即为目标地址,紧接着的6个字节为源地址;162a结束语n内容回顾;n温馨提示;163a内容回顾n设计一个梯形波发生器0123456701234567ClkQ0Q1Q2Q3Q4Q5Q6Q7164a内容回顾n设计SPI接口:写波形写波形读读波形波形165a内容回顾n设计格雷码计数器:00000100012001130010401105011160101701008110091101101111111110121010131011141001151000166a内容回顾n这14个LE是如何分配的?167a内容回顾n设计一个4路E1的时隙交叉电路;n设计FIFO的电路;168a内容回顾169a温馨提示n电路设计需要经常去思考、编写、仿真和修改,你只有在不断的重复这个过程才能提高;n设计思路是电路设计的精髓所在,它靠不断的经验积累和灵感;170a往往一个电路的实现方法有多,要试着使用不同方法实现相同功能并进行比较;n171a
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!