第2章可编程逻辑器件的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.1.2 设计输入 设计者将所设计的系统或电路以开发软件要求的某
种形式表示出来, 并送入计算机的过程称为设计输入 。 设计输入通常有以下几种方式:
1. 原理图输入方式 这是一种最直接的设计描述方式, 它使用软件系 统提供的元器件库及各种符号和连线画出原理图, 形 成原理图输入文件。 这种方式大多用在对系统及各部 分电路很熟悉的情况, 或在系统对时间特性要求较高 的场合。 当系统功能较复杂时, 原理图输入方式效率 低, 它的主要优点是容易实现仿真, 便于信号的观察 和电路的调整。
ISP技术是一种串行编程技术。 下面以Lattice公司 的ispLSI器件为例说明其编程原理。ispLSI器件的编程 结构如图 2.2 所示。 器件的编程信息数据用E2CMOS 元件存储, E2CMOS元件按行和列排成阵列, 编程时 通过行地址和数据位对E2CMOS元件寻址。
图 2.2 ispLSI器件的编程结构
了传递编程信息的作用。 其中
是编程使能信号

器件为正常工作状态,
时, 器件所有的
I/O端被置成高阻状态, 因而割断了芯片与外电路的联
系, 避免了被编程芯片与外电路的相互影响。 SDI向
串行移位寄存器提供编程数据和其它命令; SDO为数据
输出线; MODE为编程状态机的控制线; SDI同时为模
式控制线, 同MODE 一起为编程状态机的控制线;
2. 硬件描述语言输入方式
硬件描述语言是用文本方式描述设计, 它分为普 通硬件描述语言和行为描述语言。普通硬件描述语言 有ABEL―HDL#, CUPL等, 它们支持逻辑方程、 真值 表、 状态机等逻辑表达方式。行为描述语言是目前常 用的高层硬件描述语言, 有VHDL和Verilog―HDL等 , 它们都已成为IEEE标准, 并且有许多突出的优点: 如语言与工艺的无关性, 可以使设计者在系统设计、 逻辑验证阶段便确立方案的可行性;
2.1.3 设计处理 这是器件设计中的核心环节。 在设计处理过程中,
编译软件将对设计输入文件进行逻辑化简、 综合和优化 , 并适当地用一片或多片器件自动地进行适配, 最后 产生编程用的编程文件。
1. 语法检查和设计规则检查 设计输入完成之后, 在编译过程中首先进行语法检 验, 如检查原理图有无漏连信号线, 信号有无双重来 源, 文本输入文件中关键字有无输错等各种语法错误, 并及时列出错误信息报告供设计者修改;
2.2.2 在系统编程方法
在系统可编程逻辑器件从编程元件上来分有两类 : 一类是非易失性元件的E2CMOS结构或快闪存储单 元结构的可编程逻辑器件; 另一类是易失性元件的 SRAM结构的FPGA器件。 现场可编程FPGA器件和 ISP―PLD都可以实现系统重构。 采用ISP―PLD器件 通过ISP技术实现的系统重构称为静态重构; 由基于 SRAM的FPGA实现的系统重构称为动态重构。
然后进行设计规则检验, 检查总的设计有无超出器件 资源或规定的限制并将编译报告列出, 指明违反规则 情况以供设计者纠正。
2. 逻辑优化和综合 化简所有的逻辑方程或用户自建的宏, 使设计所 占用的资源最少。 综合的目的是将多个模块化设计文 件合并为一个网表文件, 并使层次设计平面化(即展平 )。
3. 适配和分割
图 2.1 高密度可编程逻辑器件的设计流程
2.1.1 设计准备 在对可编程逻辑器件的芯片进行设计之前, 首先
要进行方案论证、 系统设计和器件选择等设计准备工 作。 设计者首先要根据任务要求, 如系统所完成的功 能及复杂程度, 对工作速度和器件本身的资源、 成本 及连线的可布性等方面进行权衡, 选择合适的设计方 案和合适的器件类型。
自顶向下的设计采用功能分割的方法从顶向下逐 次进行划分。 在设计过程中采用层次化和模块化将使 系统设计变得简洁和方便。 层次化设计是分层次、 分 模块地进行设计描述。
描述器件总功能的模块放在最上层, 称为顶层设 计; 描述器件某一部分功能的模块放在下层, 称为底层 设计; 底层模块还可以再向下分层, 这种分层关系类 似于软件设计中的主程序和子程序的关系。 层次化设 计的优点一是支持模块化, 底层模块可以反复被调用 , 多个底层模块也可以同时由多个设计者同时进行设 计, 因而提高了设计效率; 其次模块化设计比较自由 , 它既适合于自顶向下的设计, 也适合于自底向上的 设计。
ISP―PLD不需要使用编程器, 只需要通过计算机 接口和编程电缆, 直接在目标系统或印刷线路板上进 行编程。 传统的可编程逻辑器件只能插在编程器上先 进行编程, 然后再装配, 而ISP―PLD则可以先装配 , 后编程。 因此ISP技术有利于提高系统的可靠性, 便于系统板的调试和维修。
2.2.1 在系统编程的基本原理
2.1.5 器件编程 编程是指将编程数据放到具体的可编程器件中去

对CPLD器件来说是将JED文件“下载(Down Load)” 到CPLD器件中去, 对FPGA来说是将位流数据BG文件 “配置”到FPGA中去。
器件编程需要满足一定的条件, 如编程电压、 编 程时序和编程算法等。 普通的CPLD器件和一次性编 程的FPGA需要专用的编程器完成器件的编程工作。
一旦指令装进状态机, 状态机就必须转移到执行 态, 以执行指令, 将MODE和SDI均置为高电平, 状 态机就从移位态转移到执行态。 如果需要使状态机从 移位态转移到闲置态, 则将MODE置为高电平, SDI 置为低电平。 执行态主要是状态机执行在移位态已装 入器件的指令。 执行一个指令时, MODE置为低电平 , SDI置为任意态。 将MODE和SDI均置为高电平时, 状态机回到移位态; 将MODE置为高电平和将SDI置 为低电平时, 状态机回到闲置态。
2.1.4 设计校验 设计校验过程包括功能仿真和时序仿真, 这两项
工作是在设计处理过程中间同时进行的。
功能仿真是在设计输入完成之后, 选择具体器件 进行编译之前进行的逻辑功能验证, 因此又称为前仿 真。 此时的仿真没有延时信息, 对于初步的功能检测 非常方便。 仿真前, 要先利用波形编辑器或硬件描述 语言等建立波形文件或测试向量(即将所关心的输入信 号组合成序列), 仿真结果将会生成报告文件和输出信 号波形, 从中便可以观察到各个节点的信号变化。 若 发现错误, 则返回设计输入中修改逻辑设计。
编程的寻址和移位操作由地址移位寄存器和数据
移位寄存器完成。 两种寄存器都按F1F0(先入先出)的
方式工作。 数据移寄存器按低位字节和高位字节分
开操作。由于器件是插在目标系统中或线路板上进行
编程, 因此在系统编程的关键是编程时如何使芯片与
外系统脱离。 从图 2.3 所示的编程接口可以看到, 计
算机和ISP―PLD的编程接口有五根信号线, 它们起到
SLCK为串行时钟线。
图 2.3 编程连接口
图 2.4 ISP编程操作状态转移图
SDI具有双重功能: 首先是作为器件的串行移位 寄存器的数据输入端; 其次它与MODE一起作为编程 状态机的控制信号。 SDI的功能受MODE控制。 当 MODE为低电平时, SDI作为移位寄存器的串行输入 端; 当MODE为高电平时, SDI为编程状态机的控制 信号。ISP状态机共有三个状态: 闲置态(IDLE)、 移 位态(SHIFT)和执行态(EXECUTE), 其状态转移如图 2.4 所示。
时序仿真是在选择了具体器件并完成布局、 布线 之后进行的时序关系仿真, 因此又称后仿真或延时仿 真。 由于不同器件的内部延时不一样, 不同的布局、 布线方案也给延时造成不同的影响, 因此在设计处理 以后, 对系统和各模块进行时序仿真, 分析其时序关 系, 估计设计的性能以及检查和消除竞争冒险等是非 常有必要的。 实际上这也是与实际器件工作情况基本 相同的仿真。
又如语言的公开可利用性, 使它们便于实现大规模系 统的设计等; 同时硬件描述语言具有很强的逻辑描述 和仿真功能, 而且输入效率高, 在不同的设计输入库 之间转换非常方便。 因此, 运用VHDL , Verilog―HDL硬件描述语言设计已是当前的趋势。
3. 波形输入方式
波形输入主要用于建立和编辑波形设计文件以及 输入仿真向量和功能测试向量。波形设计输入适合用 于时序逻辑和有重复性的逻辑函数。 系统软件可以根 据用户定义的输入/输出波形自动生成逻辑关系。波形 编辑功能还允许设计者对波形进行拷贝、 剪切、 粘贴 、 重复与伸展, 从而可以用内部节点、 触发器和状态 机建立设计文件, 并将波形进行组合, 显示各种进制 的状态值, 还可以通过将一组波形重叠到另一组波形 上, 对两组仿真结果进行比较。
确定优化以后的逻辑能否与器件中的宏单元和I/O 单元适配, 然后将设计分割为多个便于适配的逻辑小 块形式映射到器件相应的宏单元中。 如果整个设计不 能装入一片器件时, 可以将整个设计自动划分(分割) 成多块并装入同一系列的多片器件中去。划分(分割)工 作可以全部自动实现, 也可以部分由用户控制, 还可 以全部由用户控制进行。 划分时应使所需器件数目尽 可能少, 同时应使用于器件之间通信的引脚数目最少 。
4. 布局和布线 布局和布线工作是在设计检验通过以后由软件自动 完成的, 它能以最优的方式对逻辑元件布局, 并准确 地实现元件间的互连。布线以后软件会自动生成布线报 告, 提供有关设计中各部分资源的使用情况等信息。
5. 生成编程数据文件 设计处理的最后一步是产生可供器件编程使用的数 据文件。 对CPLD来说, 是产生熔丝图文件, 即JEDEC 文件(电子器件工程联合会制定的标准格式, 简称JED 文件); 对于FPGA来说, 是生成位流数据文件 (Bitstream Generation)。
数字系统设计有多种方法, 如模块设计法、 自项 向下(Top―Down)设计法和自底向上设计法等等。 自 顶向下设计法是目前最常用的设计方法, 也是基于芯 片的系统设计的主要方法。 它首先从系统设计入手, 在顶层进行功能划分和结构设计, 采用硬件描述语言 对高层次的系统进行描述, 并在系统级采用仿真手段 验证设计的正确性, 然后再逐级设计低层的结构。 由 于高层次的设计与器件及工艺无关, 而且在芯片设计 前就可以用软件仿真手段验证系统方案的可行性, 因 此自顶向下的设计方法有利于在早期发现结构设计中 的错误, 避免了不必要的重复设计, 提高了设计的一 次成功率。
第2章可编程逻辑器件的 设计
2020年7月23日星期四
2.1 可编程逻辑器件的设计流程
可编程逻辑器件的设计是指利用开发软件和编程 工具对器件进行开发的过程。高密度可编程逻辑器件 的设计流程如图 2.1 所示, 它包括设计准备、 设计输 入、 设计处理和器件编程四个步骤以及相应的功能仿 真(前仿真)、 时序仿真(后仿真)和器件测试三个设计验 证过程。
2.2 在系统可编程技术
在系统可编程(In―System Programmable, 简称ISP) 技术是 20 世纪 80 年代末Lattice公司首先提出的一种先 进的编程技术。 所谓“在系统编程”是指对器件、 电路 板或整个电子系统的逻辑功能可随时进行修改或重构 的能力。 这种重构或修改可以在产品设计、 制造过程 中的每个环节, 甚至在交付用户之后进行。 支持ISP 技术的可编程逻辑器件称为在系统可编程逻辑器件 (ISP―PLD)。
基于SRAM的FPGA可以由EPROM或其它存储体进行 配置。 在系统的可编程器件(ISP―PLD)则不需要专门 的编程器, 只要一根下载编程电缆就可以了。
器件在编程完毕之后, 可以用编译时产生的文件 对器件进行检验、 加密等工作。 对于具有边界扫描测 试能力和在系统编程能力的器件来说, 测试起来就更 加方便。
ispLSI器件内部设有控制编程操作的时序逻辑电 路, 其状态受MODE和SDI信号的控制。 器件进入ISP 编程模式时, 闲置态是第一个被激活的状态。 在编程 模式、 器件空闲或读器件标识时(每一个类型的ISP器 件都有唯一的八位标识码ID), 状态机处在闲置态。 当MODE和SDI都置为高电平, 并且在ISP状态机处在 时钟沿时, 状态转移到命令移位态。 移位态主要是把 指令装入状态机。 在移位态下, 当MODE处于低电平 时, SCLK将指令移进状态机。
相关文档
最新文档