原创 那些年,我们拿下了FPGA(上)第4章-数字系统的设计

2012-9-11 21:03 2505 17 25 分类: FPGA/CPLD 文集: 那些年,我们拿下了FPGA

 

第4章 数字系统的设计

    FPGA的开发是数字电路的编程实现,我们要讲到FPGA的开发流程,按照下面要讲到的数字电路TOP_DOWN设计思想的路子,我们先来TOP一下,讲讲我们数字系统的设计。假如仅仅是这个原因,在这一篇里安排这么一章来说这个事有点太富的感觉。

大家其实都知道,目前来说,数字技术已渗透到科研、生产和人们日常生活的各个领域。我现在敲键盘打字用的电脑是数字的,你们家电视是大部分数字的,这里排除一些老+一代的模拟电视,我们现在用的移动电话肯定都是数字,以及绝大部分新研制的医用设备、军用设备等,无不尽可能地采用了数字技术。我们在享乐这些数字技术创造的幸福的时候,我们想过这些令人兴奋的东西是怎么来的么?可惜今天这里并不会告诉你怎样造电视、手机,这里我要讲的是更重要的,这些幸福的东西是遵循什么样的方式来设计的。FPGA作为数字电路的非常主流和主要的设计平台,我们对基于FPGA开发的系统当然也是遵循这个思路的。

4.1数字系统设计的基本概念

       电子系统可以分为模拟系统、数字系统、模数混合系统。模拟系统是最开始出现在我们视野当中,随着数字化到来,数字系统也浮现了出来。数字系统是对数字信息进行存储、传输、处理的电子系统。相比于模拟系统的优点在前面其实已经提到过,数字系统具有工作稳定可靠,抗干扰能力强,便于大规模集成,易于实现小型化、模块化等优点。

       不论数字系统有多么复杂,电脑也要,电话也好,其数字部分就其本质而言都是逻辑问题,既然是逻辑问题,就是通过逻辑功能模块来完成。通常把门电路、触发器等称为逻辑器件,如果直接用门电路和触发器来设计的话,工作量是非常巨大的。我们是通过这些门电路、触发器来构成一些比如计数器、编码译码器、加法器等这样的逻辑器件,然后再用这些逻辑器件来构成我们逻辑功能模块,甚至逻辑功能模块又分为多个层次。这些逻辑功能模块的开发当然可以选择在FPGA上来开发。数字系统由这些逻辑功能模块之间有机配合,协调工作的。

       我们要能够针对大部分的五花八门的数字系统得到一个统一的设计流程或方法出来,想必这些数字系统能过大致统一的用一个模型来建立。确实是,我们数字系统一般的功能模块如图所示控制电路、多个受控电路、输入/输出电路、时基电路等几部分组成。

      4_1.jpg

       图中看出,输入电路将外部的数字信号,包括开关信号、时钟信号,引入数字系统中,经过控制电路逻辑处理后,或控制受控电路,或经过输出电路产生外部执行机构,比如二极管、数码管、显示屏等所需要的信号。数字系统大都以时序电路为核心,时基电路产生维持电路正常运转的时钟节拍,保证整个系统在时钟作用下协调工作。

      

4.2数字系统设计思想方法

       既然我们已经从大部分的数字系统中抽象出了图XX模型,我们接下来面对的问题是面对一个数字系统怎样利用我们建立的模型去实现。毕竟随着电子技术的发展,数字系统的越来越庞大和复杂,设计的规范化直接影响到数字系统的稳定性。所以我们数字系统设计的设计思想必须做到系统性、清晰性和可靠性。

4.2.1系统分析

首先,我们拿到一个设计,依照模型来分析设计,明确我们设计系统所要完成的逻辑功能。在系统模型中,输入电路的输入信号是什么,输出电路的输出信号又是什么,控制电路完成怎么样的功能控制等等,以及这些功能的指标要求。

4.2.2 方案的抉择

其实是针对第一步的分析,做结构设计,确立最终设计方案。对于一个设计来讲,可能有很多中不同的方案,这个时候,我么就得进一步考虑了。不同的结构设计的优劣直接关系到系统实现的成本、质量和时间。对现有产品的电路多做分析、比较,反复推敲,确定优化方案,这样做能够起到事半功倍的效果。系统的结构确定后,应当给出系统方框图、系统流程图或用硬件描述语言描述的系统算法等,必要时给出系统的时序图。对于较为复杂的数字系统应当将系统划分成子系统(如数据处理子系统和控制子系统)。

4.2.3 top_down具体实现

针对定好的设计方案,对系统或子系统采用自顶向下(top-down)的模块化设计方法具体实现。自顶向下的设计方法是在顶层设计中,把整个系统看成是包含输入输出端口的单个模块,对系统级进行仿真、纠错,然后对顶层进行功能方框图和结构的划分,即从整个系统的功能出发,按一定原则将系统分成若干子系统,再将每个子系统分成若干个功能模块,再将每个模块分成若干小的模块……直至分成许多基本模块实现。这样将系统模块划分为各个子功能模块,并对其进行行为描述,在行为级进行验证。

例如,交通灯控制器的设计,可以把整个系统分为主控电路、定时电路,译码驱动显示等,而定时电路可以由计数器功能模块构成,译码驱动显示可由SSI构成组合逻辑电路构成,这两部分都是设计者所熟悉的各种功能电路,设计起来并不困难,这样交通灯控制器的设计的主要问题就是控制电路的设计了,而这是一个规模不大的时序电路,这样就把一个复杂的数字系统的设计变成了一个较小规模的时序电路的设计,从而大大简化了设计的难度,缩短了设计周期,由于设计调试都可以针对这些子模块进行,使修改设计也变得非常方便。

其实数字系统的设计通常有两种设计方法,一种这个自顶向下的设计方法自,另一种是底向上的设计方法。

自底向上(Bottom-up)的设计过程从最底层设计开始。设计系统硬件时,首先选择具体的元器件,用这些元器件通过逻辑电路设计,完成系统中各独立功能模块的设计,再把这些功能模块连接起来,总装成完整的硬件系统。这种设计过程在进行传统的手工电路设计时经常用到,优点是符合硬件设计工程师传统的设计习惯,稳定性好,可靠性高。缺点是在进行底层设计时,缺乏对整个电子系统总体性能的把握,在整个系统设计完成后,如果发现性能尚待改进,修改起来比较困难,因而设计周期长。

随着集成电路设计规模的不断扩大,复杂度的不断提高,传统的电路原理图输入法已经无法满足设计的要求。EDA工具和HDL语言的产生使自顶向下(Top-Down)的设计方法得以实现。

4.2.4 硬件化

最后就是为了最终使设计成为现实,在上述设计的基础上,选择具体的集成电路,用硬件电路实现各个子系统。其中包括印刷电路板的制作、元器件的焊接以及最终的硬件的测试和调试。如果使用了可编程逻辑器件的话,还需对其进行烧录。使用现代化电子设计的软件工具,在进行子系统的逻辑设计阶段就可以根据系统要求用硬件描述语言描述系统,利用软件工具对其描述进行编译和仿真,软件自动生成下载文件,最终将设计烧录在可编程逻辑器件中

4.3数字系统设计平台选择

数字系统的设计可以在以下几个层次上进行:选用通用集成电路芯片构成数字系统、应用可编程逻辑器件实现数字系统,设计专用集成电路(单片系统)。

4.3.1通用集成电路芯片构成数字系统

用通用集成电路构成数字系统即采用SSI、MSI、LSI(如74系列芯片,计数器芯片、存储器芯片等),根据系统的设计要求,构成所需数字系统。早期的数字系统的设计,都是在这个层次上进行的,电子工程师设计电子系统的过程一般是:根据设计要求进行书面设计——选择器件——电路搭建调试——样机制作,这样完成的系统设计由于芯片之间的众多连接造成系统可靠性不高,也使系统体积相对较大,集成度低。当数字系统大到一定规模时,搭建调试会变得非常困难甚至不可行。

4.3.2应用可编程逻辑器件、专用集成电路实现数字系统

应用可编程逻辑器件(Programmable Logic Device PLD)实现数字系统设计和单片系统的设计,是目前利用EDA技术设计数字系统的潮流。这种设计方法以数字系统设计软件为工具,将传统数字系统设计中的搭建调试用软件仿真取代,对计算机上建立的系统模型,用测试码或测试序列测试验证后,将系统实现在PLD芯片或专用集成电路上,这样最大程度地缩短了设计和开发时间,降低了成本,提高了系统的可靠性。

高速发展的可编程逻辑器件为EDA技术的不断进步奠定了坚实的物理基础。  FPGA不但具有微处理器和单片机的特点,而且随着微电子技术和半导体制造工艺的进步,集成度不断提高,与微处理器、DSP、A/D、D/A、RAM和ROM等独立器件之间的物理与功能界限正日趋模糊,嵌入式系统和片上系统(SOC)得以实现。以大规模可编程集成电路为物质基础的EDA技术打破了软硬件之间的设计界限,使硬件系统软件化。这已成为现代电子设计技术的发展趋势。

文章评论8条评论)

登录后参与讨论

用户961355 2013-4-26 19:08

好资料,明天鸡血学习。

用户1378619 2013-1-25 17:21

不错,很细致

用户402158 2012-9-27 17:12

你好,感谢你参加博客大赛,第三季博客大赛主题是嵌入式,这篇文章不符合本季大赛的主题,不能参赛,欢迎发表更多符合主题的参赛博文。谢谢!

用户427466 2012-9-26 09:50

对,大家也可以多多在小组里讨论撒

用户427466 2012-9-26 09:48

232619168 群建好了

用户402158 2012-9-25 15:32

有小组啊!你看到你建立小组了。

用户427466 2012-9-19 19:16

不好意思,还没有群哦,马上建吧

用户1323857 2012-9-19 12:42

楼主 有没有群呀 请加我Q 937501304

handong123123_906892115 2012-9-18 10:21

共同学习

用户377235 2012-9-17 21:32

好文章 正需要
相关推荐阅读
用户427466 2017-04-27 10:08
EXATA/Qualnet调试方法
1、exata5.3安装**** exata-5.3-windows-installer-64bit.exe或者exata-5.3-windows-installer-32bit.exe 默认安装路...
用户427466 2015-04-01 10:57
一个工程师说走就走的西藏之旅(九)
今年终于放下了手头的工作 背上背包 来一场说走就走的旅行 在这里让更多的朋友看到 路上的故事 路上的风景 路上的陌生人 川青大环线第九天 (实时状况关注微信) ...
用户427466 2015-03-28 23:50
一个工程师说走就走的西藏之旅(八)
今年终于放下了手头的工作 背上背包 来一场说走就走的旅行 在这里让更多的朋友看到 路上的故事 路上的风景 路上的陌生人 川青大环线第八天 (实时状况关注微信) ...
用户427466 2015-03-24 23:50
一个工程师说走就走的西藏之旅(七)
今年终于放下了手头的工作 背上背包 来一场说走就走的旅行 在这里让更多的朋友看到 路上的故事 路上的风景 路上的陌生人 川青大环线第七天 (实时状况关注微信) ...
用户427466 2015-03-24 23:40
一个工程师说走就走的西藏之旅(六)
今年终于放下了手头的工作 背上背包 来一场说走就走的旅行 在这里让更多的朋友看到 路上的故事 路上的风景 路上的陌生人 川青大环线第六天 (实时状况关注微信) ...
用户427466 2015-03-23 11:25
一个工程师说走就走的西藏之旅(三)
今年终于放下了手头的工作 背上背包 来一场说走就走的旅行 在这里让更多的朋友看到 路上的故事 路上的风景 路上的陌生人 川青大环线第三天 (实时状况关注微信) ...
我要评论
8
17
关闭 站长推荐上一条 /2 下一条