打印

数字电路设计介绍

[复制链接]
1870|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
星星之火红|  楼主 | 2012-11-7 23:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一.数字电路设计的层次
        当前的数字电路设计从层次上分可分成以下几个层次:
               1. 算法级设计:利用高级语言如C语言及其他一些系统分析工具(如MATLAB)对设计从系统的
                   算法级方式进行描述。算法级不需要包含时序信息。

               2. RTL级设计:用数据流在寄存器间传输的模式来对设计进行描述。
               3. 门级:用逻辑级的与、或、非门等门级之间的连接对设计进行描述。
               4. 开关级:用晶体管和寄存器及他们之间的连线关系来对设计进行描述。

       算法级是高级的建模,一般对特大型设计或有较复杂的算法时使用,特别是通讯方面的一些系统,通过算法级的建模来保证设计的系统性能。在算法级通过后,再把算法级用RTL级进行描述。门级一般对小型设计可适合。开关级一般是在版图级进行。其中算法级的建模不一定需要在硬件上实现,更多的时候是用来验证设计的正确性,而RTL级、门级和开关级的设计一般都是可以在硬件上实现的。有一些书籍中关于数字电路设计的分层可能还会包括系统级设计(用高级语言结构描述系统的外部性能的模型),博主认为系统级和算法级类似,都是用来验证系统设计的正确性的,不涉及到具体的硬件实施,故可以将其归纳入算法级设计中,不细分出来。

相关帖子

沙发
星星之火红|  楼主 | 2012-11-7 23:57 | 只看该作者
二.硬件描述语言

        在传统的设计方法中,当设计工程师设计一个新的硬件、一个新的数字电路或一个数字逻辑系统时,设计者必须为设计画一张线路图,通常地,线路图是由表示信号的线和表示基本设计单元的符号连在一起组成线路图,符号取自设计者用于构造线路图的零件库。若设计者是用标准逻辑器件(如74系列等)做板极设计线路图,那么在线路图中,符号取自标准逻辑零件符号库;若设计是进行ASIC设计,则这些符号取自ASIC库的可用的专用宏单元。这就是传统的原理图设计方法。

        对线路图的逻辑优化,设计者或许利用一些EDA工具或者人工地进行逻辑的布尔函数逻辑优化。为了能够对设计进行验证,设计者必须通过搭个硬件平台(如电路板),对设计进行验证。

        随着电子设计技术的飞速发展,设计的集成度、复杂度越来越高,传统的设计方法已满足不了设计的要求,因此要求能够借助当今先进的EDA工具,使用一种描述语言,对数字电路和数字逻辑系统能够进行形式化的描述,这就是硬件描述语言。

        硬件描述语言HDL(Hardware Description Language )是一种用形式化方法来描述数字电路和数字逻辑系统的语言。数字逻辑电路设计者可利用这种语言来描述自己的设计思想,然后利用EDA工具进行仿真,再自动综合到门级电路,最后用ASIC或FPGA实现其功能。举个例子,在传统的设计方法中,对2输入的与门,我们可能需到标准器件库中调个74系列的器件出来,但在硬件描述语言中,“& ”就是一个与门的形式描述,“C = A & B”就是一个2输入与门的描述。而“and”就是一个与门器件。硬件描述语言发展至今已有二十多年历史,当今业界的标准中(IEEE标准)主要有VHDL和Verilog HDL 这两种硬件描述语言。

使用特权

评论回复
板凳
星星之火红|  楼主 | 2012-11-7 23:57 | 只看该作者
本帖最后由 GoldSunMonkey 于 2012-11-8 00:30 编辑

三.数字电路设计方法
       当前的ASIC/FPGA设计主要有两种设计方法,一种是自底向上的设计方法,另一种是自顶向下的设计方法。自底向上的设计方法是首先根据系统的功能点寻找现有的功能模块或设计新的功能子模块,然后将这些功能模块搭建成规模大一些的功能模块,再用大一些的功能模块搭建更大的功能模块,直至搭建成系统顶层模块。自顶向下指的是一个设计从系统级设计开始,把系统划分成几个大的基本的功能模块,每个功能模块再按一定的规则分成下一个层次的基本单元,如此一直划分下去。随着技术的发展,一个芯片上往往集成了几十万到几百万个器件,单纯采用自底向上设计方法已不太现实,采用自顶向下的设计方法才能满足设计生产力的需求。通过自顶向下的设计方法,可实现设计的结构化,使一个复杂的系统设计可由多个设计者分工合作;还可以实现层次化的管理。自顶向下的设计方法可用下面的树状结构表示:


        所谓自底向上,即首先完成各个功能子模块,再将各子模块连接实现完整的系统。各功能子模块可能是现成的,可实现系统中的一部分功能。侧重点在于先实现底层的具体功能点,在考虑系统整理的拼接。自底向上也能够实现系统的层次化,但是层次没有自顶向下那么清晰,结构也无容易优化,这个是自底向上的缺点。不过,由于自底向上设计方法更容易使用现有的一些功能模块,对于系统的开发时间和开发成本是比较有利的。一般自底向上设计方法适用于小型数字系统的设计,自顶向下适用于大型复杂的数字系统的设计。通常,一个数字电路系统的设计主体上是采用自顶向下设计方法,局部会采用自底向上设计方法,两种方法混合使用,达到最大的设计效果。

使用特权

评论回复
地板
lxAPP| | 2012-11-8 00:18 | 只看该作者
学习啦。

使用特权

评论回复
5
GoldSunMonkey| | 2012-11-8 00:30 | 只看该作者
谢谢分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

1782

帖子

22

粉丝