可编程逻辑器件

  • 通用性强,但逻辑功能较简单、且固定不变 ;构成的系统功耗体积大、可靠性差;中、小规模数字集成电路都属于通用型
  • 为某种专门用途而设计的集成电路;成本较高、周期较长

PLD器件的连接

批注 2020-02-20 093535

可编程逻辑阵列(PLA)

可编程阵列逻辑(PAL)

  • PLA又慢又贵又大;
  • 或阵列固定,与阵列可编程;
  • Programmable logic plane与Output logic两部分
  • 速度快,费用低,易于编程;
  • 使用硬体描述语言,例如Data I/O的ABEL,或MMI的 PALASM编程

现场可编辑门阵列

Field Programmable Gate Array,缩写为FPGA

  • 半定制,既解决了全定制电路的不足,又克服了原有可编程逻辑器件门电路数有限的缺点
  • 硬件描述语言(Verilog或VHDL)描述逻辑电路,可以利用综合和布局、布线工具软件,快速地烧录至FPGA上;
  • 设计师可以根据需要,通过可编辑的连接,把FPGA内部的逻辑块连接起来
  • 好像一个电路试验板被放在了一个芯片里

FPGA设计流程

设计输入

  • 原理图
  • 硬件描述语言

功能仿真和综合

  • 验证设计是否满足设计功能要求
  • 优化

布局布线和时序仿真

  • 映射到具体的目标硬件上,也称布局、布线
  • 实现之后,下载之前,考虑实际门的延迟,来防止时序错误。功能仿真可以不指定硬件,时序仿真必须指定

下载

写入到设备

硬件描述语言HDL

  • 描述电子电路(特别是数字电路)功能、行为的语言
  • 寄存器传输级、行为级、逻辑门级等对数字电路系统进行描述
  • 硬件描述语言和传统的软件编程语言最大的区别是,前者能够对于硬件电路的时序特性进行描述
  • 硬件描述语言是构成电子设计自动化(EDA)体系的重要部分
  • 可以描述小到简单的触发器,大到复杂的超大规模集成电路
  • 常见的硬件描述语言:Verilog、VHDL

Verilog

模型

模块是Verilog语言的基本组成单元,模块可以用下面任何一种建模方法(或一个组合)来描述

  • 用实例化(instantiation)预定义基本逻辑门(primitive gates)或用户自定义的门电路进行门级建模(Gate level modeling)
  • 用关键字为assign的连续赋值(continuous assignment)语句进行数据流建模(Dataflow modeling);描述布尔方程
  • 用关键字为always的过程赋值(procedural assignment)语句进行行为建模(Behavioral modeling);

门级建模

  • 两个或多个模块可以组合起来对一个设计分层描述:自顶向下和自底向上的设计方法
  • 模块可以被嵌套(引入),但是模块的说明不可以嵌套(一个模块不能插入另一个模块的module和endmodule之间)
  • 实现在一个模块中插入另一个模块的唯一方法是例化

数据流建模

  • 门级建模:通过确定个逻辑门以及它们之间的相互连接来描述电路
  • 数据流建模:使用大量运算符用于二进制操作数来产生所需的结果
  • 采用连续赋值的方法,关键字是assign
  • 连续赋值语句是对wire型数据赋值的说明
  • wire型用来反映元件之间的物理连接

行为建模

  • 行为建模:在功能和算法层次上描述数字电路
  • 使用关键字always,主要用于描述时序电路,但也可以描述组合电路
  • 采用过程赋值的方法,目标输出的数据类型必须声明为reg型

时序电路的Verilog模型

  • initial 和 always 两种抽象行为语句
  • initial只用于testbench中的激励信号
  • lways模块使用过程赋值,赋值语句左边的变量一定要声明为reg型
阻塞赋值和非阻塞赋值

两种过程赋值语句:

阻塞赋值 B = A 和 非阻塞赋值 B<=A

results matching " "

No results matching " "

results matching " "

No results matching " "