Ch9有限状态机数据通道设计.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Ch9有限状态机数据通道设计

硬件描述语言 Hardware Description Language;主要内容;重点和难点;学习目标;主要内容;从应用的角度讲,数字系统可以分为两类: 控制主导(control-dominated) 有限状态机 数据处理主导(data-dominated) 有限状态机数据通道 有限状态机 米利状态机和摩尔状态机 状态装换图和算法状态机图 有限状态机数据通道(Finite State Machine + Datapath) ;有限状态机+数据通道数字系统结构 ;算法(Algorithm) 复杂的数据处理问题,需要设计合理的算法; 为了完成某个任务或者解决某个问题而采取的一系列详细步骤和操作称为算法(Algorithm) 。 传统上,算法采用传统的编程语言实现(C语言),其程序经过编译运行于通用计算机。 为了获得更好性能和效率,有时需要自行设计硬件电路实现某些复杂的数据处理任务。 寄存器传输级设计是数字系统设计中最为常用的方法, 寄存器传输级设计需要描述数据在寄存器之间的传输和处理过程。 这种设计方法支持顺序执行的算法的描述。;有限状态机+数据通道 有限状态机作为系统的控制单元,控制算法流程 数据通道包含执行算术或者逻辑运算的元件和寄存器,比如加法器、乘法器,执行数据处理功能。 数据通道结构决定整个数字系统的性能,因此数据通道的设计至关重要。;主要内容;9.2 数据通道设计概述;算法 为了完成某个任务或者解决某个问题而采取的一系列详细步骤和操作称为算法(Algorithm)。 传统编程语言(比如C语言)的语句顺序执行,适于实现各类顺序执行的算法。 传统编程语言程序会被编译成机器指令,然后再通用计算机上运行。;算法 使用变量 顺序执行 Example:求数组中的连续4个元素的和,该和除以8后向最接近该整数的值取整; 首先将4个元素相加并将结果存在变量sum中, 然后分别求出sum与8做除法的商和余数。 如果余数大于3,将商加1作为最后的结果;算法的两个基本特征:使用变量、顺序执行 算法中的变量与通用计算机中存储器的某个位置对应,其地址用该变量名称表示。 变量用于存储中间计算结果。 顺序执行 算法顺序执行,所以程序中的语句顺序非常重要。例如,在除法操作执行之前,必须完成4个元素的求和。 注意:语句的执行顺序可能会依赖某些条件,比如for循环或者if语句。 ;数据流模型的结构描述 为了获得更高性能和效率,往往需要采用硬件实现某些算法。 硬件描述语言本身用于描述并行执行的硬件,与变量和顺序执行的算法有很大不同。 到目前为止,已经介绍了如何将“顺序执行的算法”转换成“结构级描述的数据流模型”, 所谓“结构级描述的数据流模型”就是采用硬件模块的级联,实现顺序执行的算法,将算法中需要执行的操作与硬件模块一一对应,并按照执行顺序级联到一起。 对应前面的算法,可以将循环打开,将变量映射成内部连接线。假设sum是8位宽的信号。;对应的Verilog HDL代码如下: assign sum = 0; assign sum0 = a[0]; assign sum1 = sum0 + a[1]; assign sum2 = sum1 + a[2]; assign sum3 = sum2 + a[3]; assign q = {3’b000, sum3[8:3]}; assign r = {5’b00000, sum3[2:0]}; assign outp = (r3)?(q+a):q; ;电路是组合逻辑电路,加法和除法并行执行,实现的过程也不会使用任何变量的概念; 数字电路并行执行,顺序执行的概念也被隐含地嵌入到模块的互联中; 典型情况,专门设计的数字系统,通过设计优化和使用更多的资源可以加快算法执行的速度。 通用计算机必须通过自己的算术逻辑单元顺序执行这些操作,而硬件电路可以并行地使用加法器和除法器电路完成计算过程;问题 将数组元素由4个增加到10个,执行循环的次数会增加到10次,其硬件实现需要9个加法器。如果数组元素个数非常多,会导致其硬件实现需要过多的加法器,这在很多情况下是不现实的。 如果数组元素的数目并不固定,而是由一个输入信号n指定。采用结构级的数据流实现将非常困难。硬件不能动态扩展和缩小,所以必须针对所有n值进行计算,之后通过数据选择器将期望的结果送给输出。这会是硬件电路异常复杂,在实际应用中并不现实。;寄存器传输级设计 使用寄存器存储中间计算结果、表示算法中的变量; 使用自定义的数据通道实现所有需要的寄存器操作; 使用控制通道指定寄存器操作的步骤; 规则时序电路或者FSM中,寄存器用于表示电路的内部状态。 在寄存器传输级设计中,寄存器通常当做存储器使用,用于保存中间计算结果,这与算法中使用的变量是一样的。;寄

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档