超大规模集成电路设计----基于阵列的可编程逻辑(七)

2024-03-28 04:30

本文主要是介绍超大规模集成电路设计----基于阵列的可编程逻辑(七),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文仅供学习,不作任何商业用途,严禁转载。本篇文章绝大部分资料来自中国科学院段成华教授PPT

超大规模集成电路设计----基于阵列的可编程逻辑(七)

  • 7.1 引言
    • 7.1.1.回顾
    • 7.1.2. 数字逻辑系列Digital Logic Families
    • 7.1.3.从定制到半定制和结构化阵列设计方法
  • 7.2 可编程阵列逻辑Programmable Array Logic(PAL)
    • 7.2.1 PAL Concept
    • 7.2.2 Basic PAL Array Architecture
    • 7.2.3 PAL Output Structures
    • 7.2.4 使用PALs设计示例
  • 7.3 通用阵列逻辑Generic Array Logic
    • 7.3.1 GAL Architecture
    • 7.3.2 OLMC: Output Logic Macro Cell
      • 7.3.3 GAL Design Example
  • 7.4 复杂可编程逻辑器件Complex Programmable Logic Devices (CPLD)
    • 7.4.1 引言
      • 7.4.1.1 CPLD Architectures
    • 7.4.2 XPLA3 CPLD Architecture
      • 7.4.2.1 ==Architecture==
      • 7.4.2.2 ==Interconnect Matrix - ZIA==
        • 7.4.2.2.1交叉点开关Crosspoint Switch
        • 7.4.2.2.2 2:1Mux Based Interconnect
        • 7.4.2.2.3 XPLA3 ZIA
      • 7.4.3 Logic Block
      • 7.4.3.1 Variable Function Mux (VFM)
      • 7.4.3.2 Fold-back NANDs
    • 7.4.4 Fold-back PAL versus PLA
    • 7.4.5 Product Term Sharing
    • 7.4.6 PTs Allocation Techniques
    • 7.4.7 ==宏单元Macrocell(MC) 重点==
      • 总体描述(重点)
      • 寄存器功能
      • 时钟
      • 输入时寄存器配置方式
      • 补充:埋在逻辑块中且未连接到I/O的宏单元与非埋入的宏单元的区别
      • I/O单元
  • 7.5 FPGA-Field Programmable Gate Arrays
      • 7.5.1FPGA制作工艺
        • 反熔丝Anti-fuse (non-volatile)
        • SRAM
        • EPROM 和 E²PROM
        • Flash
      • 7.5.2 FPGA的结构
    • 7.5.3 布尔方程和逻辑生成器
      • 7.5.3.1 布尔方程
        • 1. 最小项Min-Term
        • 2. 正则表达式Canonical expressions
        • 3.香浓扩展定理Shannon’s expansion theorem
        • 4. 正则定理Canonical theorem
      • 7.5.3.2 逻辑生成器
        • 1. 基于PT原理
        • ==2. 基于MUX原理==
        • ==3. 基于LUT原理==
    • 7.5.4Configurable Logic Blocks
      • 7.5.4.1. ACT Logic Modules
      • 7.5.4.2 XC 3000 CLB
        • Combinational Logic Options:
      • 7.5.4.3 XC4000 CLB
        • 1. 把XC4000 的逻辑生成器当RAM用
          • 1. 16x2 (or 16x1) Edge-Triggered Single-Port RAM
          • 2. 32x1 Edge-Triggered Single-Port RAM (F and G addresses are identical)
          • 3. Dual-Port RAM, Simple Model
        • 2. XC4000 中的超前进位链
    • 7.5.5 可编程I/O
      • 7.5.5.1 三态门
      • 7.5.5.2 XC3000 I/O
      • 7.5.5.3 XC4000 I/O
  • 7.6 亚稳态Metastability

为什么要学习这一章:这一章详细地介绍了PAL、GAL、CPLD、FPGA等可编程逻辑器件,以及浅析了亚稳态。CPLD和FPGA部分需要重点学习,前面GAL和PAL可以粗略的看。标黄部分属于必须掌握的部分,黑体部分表示强调部分,有助于理解,对于普通字体部分,时间紧急的浏览者可以选择忽略,对于初学者,建议博文每部分都需要连贯阅读。

7.1 引言

7.1.1.回顾

纯定制设计是 1970 年代早期集成电路的常态。
1980s ~:
◆ Programmable logic array (PLAs),
◆ Standard cells,
◆ Macrocells,
◆ Module compilers,
◆ Gate arrays,
◆ Reconfigurable hardware

7.1.2. 数字逻辑系列Digital Logic Families

Standard products (Dedicated General Purpose Devices)
TTL, HC, HCT, 4000/4500
✓ Programmable logic
PAL, GAL, PROM/FLASH, CPLD, FPGA
✓ Custom logic
Full-custom: Handcrafted designs
Semi-custom: Gate Arrays, Standard cells, Macrocells, SoC/NoC

7.1.3.从定制到半定制和结构化阵列设计方法

From Custom to semicustom and Structured-Array Design Approaches
在这里插入图片描述
Examples of full custom cell and semicustom cell:
在这里插入图片描述

7.2 可编程阵列逻辑Programmable Array Logic(PAL)

7.2.1 PAL Concept

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/80642f1a27f54226ad17ee8543a52c71.png ==700x300)
特点
i. PAL/GAL, PROM, PLA devices share the same internal AND-OR structure,PAL/GAL、PROM、PLA 器件具有相同的内部 AND-OR 结构
ii. Varying allocation of logic features and amount of programmability.不同的逻辑功能分配和可编程性。
iii. Two levels of function: AND and OR array.两个级别的函数:AND 和 OR 数组。
iv. Implementing logic in the form of Boolean sum-of-products.以布尔乘积和的形式实现逻辑

7.2.2 Basic PAL Array Architecture

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/cffb1b3582274330a503236795e4a061.png ==700x300)
特点

  1. AND array is programmable;
  2. OR array is fixed;
    3.== Two AND-gates are dedicated to each OR-gate.每个或门都连接着两个与门==

7.2.3 PAL Output Structures

  1. 高电平有效双向输出Active HIGH Bidirectional Output

在这里插入图片描述
特点
◼ ==Programmable outputs enable as a function of an AND-gate in the array.可编程输出使能是阵列中与门的函数简单说就是一个与门控制着上图中三态门的输出
◼ Output buffer programmed in three ways:
• As a dedicated output,
•A dedicated input, and
•A dynamically controllable input/output.动态可控的输入/输出简单说就是输入输出可配置
◼ Feedback path allows more complex logic functions to be implemented 反馈路径允许实现更复杂的逻辑功能 简单说就是允许输出反馈回来再构成逻辑

  1. 低电平有效双向输出Active LOW Bidirectional Output
    在这里插入图片描述

  2. 低电平有效XOR双向输出Active LOW XOR Bidirectional Output
    在这里插入图片描述

  3. 异或寄存输出XOR Registered Output
    在这里插入图片描述
    特点
    Simplifying state machine design.
    Placed on data bus.
    CLOCK and Output Enable are dedicated.

7.2.4 使用PALs设计示例

  1. 基本逻辑门的设计
    B = A ‾ , E = C ⋅ D , H = F + G , O = M + N ‾ , R = P ⋅ O ‾ + P ‾ ⋅ O , L = I ⋅ J ⋅ K ‾ \begin{aligned} &B=\overline{A}, \\ &E=C\cdot D, \\ &H=F+G, \\ &O=\overline{M+N}, \\ &R=P\cdot\overline{O}+\overline{P}\cdot O, \\ &L=\overline{{I\cdot J\cdot K}} \end{aligned} B=A,E=CD,H=F+G,O=M+N,R=PO+PO,L=IJK

设计规范Design specification:
在这里插入图片描述
2. 内存映射 I/O
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/0f3437aa1c464af68e15805ee48f3f52.png ==700x300)

7.3 通用阵列逻辑Generic Array Logic

7.3.1 GAL Architecture

在这里插入图片描述

7.3.2 OLMC: Output Logic Macro Cell

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c4919c3ed4574a6aadd6969a2962d1be.png ==700x300)
PMUX: Path multiplexer TMUX: 3-state mux
OMUX: Output mux FMUX: Feedback mux

7.3.3 GAL Design Example

Implement SN374 8-bit FFs.
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/84eabc6a11ff4755984cd45264b09cf7.png ==700x300)
在这里插入图片描述

7.4 复杂可编程逻辑器件Complex Programmable Logic Devices (CPLD)

7.4.1 引言

7.4.1.1 CPLD Architectures

(1) Xilinx XPLA3 Architecture
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/5bc2ab92a621405295d9b0abd1db343e.png ==700x300)
(2) XC9500 Architecture
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/3db87c540e824a85b67126225ab5cb46.png ==700x300)

7.4.2 XPLA3 CPLD Architecture

7.4.2.1 Architecture

在这里插入图片描述
◆ ==A 4-bit Universal Bus is used to provide
✓ an individual asynchronous clock (UCLK),
✓ reset (URST),
✓ preset (UPST), and
✓ output enable (UOE). ==
These bus lines are driven by four multiplexers (muxes), with the mux inputs consisting of a single control p-term from each Logic Block. 这些总线由四个多路复用器(多路复用器)驱动,多路复用器输入由来自每个逻辑块的单个control p-term组成。

7.4.2.2 Interconnect Matrix - ZIA

The routing matrix is called the ZIA (Zero-power Interconnect Array),当然也只是号称无功耗,其实还是有功耗的
The interconnect resource is supposed to act like a crosspoint switch to route signals from(互连资源应该像交叉点开关一样路由信号)
✓ Inputs to function blocks,
✓ I/Os, and
✓ macrocell feedbacks to the logic blocks

7.4.2.2.1交叉点开关Crosspoint Switch

在这里插入图片描述
特点
Any input can be connected to any output.任何输入都可以连接到任何输出。
A typical 128 macrocells device would need 65536 (256X256) connections.典型的 128 宏单元设备需要 65536 (256X256) 个连接。
Relative slow (8 – 15 ns delay).相对较慢(8 – 15 ns 延迟)。

7.4.2.2.2 2:1Mux Based Interconnect

在这里插入图片描述

7.4.2.2.3 XPLA3 ZIA

在这里插入图片描述

  • The interconnect employs a sufficiently large number of input muxes, of sufficient width 互连采用足够多的输入多路复用器,具有足够的宽度。
  • Signal routing of 99.997% when every I/O, input pin, and macrocell is in use and has a fixed pinout.

7.4.3 Logic Block

在这里插入图片描述

7.4.3.1 Variable Function Mux (VFM)

在这里插入图片描述
利用PT项和MUX生成函数

7.4.3.2 Fold-back NANDs

在这里插入图片描述
==折叠门,生成非逻辑再反馈回去。==下面是折叠门的例子。
在这里插入图片描述

7.4.4 Fold-back PAL versus PLA

PAL注重逻辑电路,PLA注重阵列,PAL的与门可编程或门固定,PLA的与门或门均可编程
在这里插入图片描述

7.4.5 Product Term Sharing

在这里插入图片描述
PLA的乘积项是能给多个或门用的。

7.4.6 PTs Allocation Techniques

在这里插入图片描述
乘积项能给多个宏单元使用

7.4.7 宏单元Macrocell(MC) 重点

在这里插入图片描述

总体描述(重点)

如图所示,每个宏单元都可以支持组合或寄存器输入、每个宏单元的通用置位和复位以及可配置的 D、T 或 L 寄存器,具有最大的时钟灵活性。ZIA 有两条反馈路径:一条来自宏单元,另一条来自 I/O 引脚。当 I/O 用作输出时,输出缓冲区被启用,并且宏单元反馈路径可用于反馈宏单元中实现的逻辑。 当 I/O 引脚用作输入时,输出缓冲器将处于高阻状态,输入信号将通过 I/O 反馈路径馈入 ZIA。在VFM中实现的逻辑可以通过宏单元反馈路径反馈给 ZIA系统。埋在逻辑块中且未连接到 I/O 的宏单元与非埋入的宏单元相同。每个宏单元都可用于实现寄存功能或组合功能。

寄存器功能

每个宏单元寄存器的数据输入来自可变函数多路复用器的输出。每个宏单元寄存器可配置为 D、T 或锁存器型触发器;该触发器也可以配置为输入寄存器。每个触发器都具有异步置位和复位功能。有七种不同的置位和复位源:一个通用控制项( [UCT1]用于置位,[UCT2]用于复位 )和六个共享的本地控制项 (LCT[0-5])。

时钟

每个宏单元的寄存器都可以从八个信号源中的任何一个时钟进行驱动。哪八个呢?看下面。==

  1. 有两个全局时钟,这两个全局时钟是通过一个 4:2 多路复用器从四个外部时钟引脚产生。
  2. 有一个通用时钟信号 (UCT0) 由通用控制项提供。
  3. 有四个本地控制项 (LCT4-LCT7) 可用作时钟信号,并可单独配置为乘积项或从逻辑块内部可用的 36 个信号创建的求和项方程。
  4. 每个宏单元有一个专用的乘积项时钟。

输入时寄存器配置方式

XPLA3 器件宏单元的寄存器可以配置为输入寄存器;这意味着来自引脚的信号可以直接由寄存器锁存,而不必通过互连阵列。如下图所示,在实现输入寄存器时,前面的宏单元逻辑仍可用作埋入的组合节点。此逻辑可以反馈到互连阵列,以便在器件的其他位置进行分配。
在这里插入图片描述

补充:埋在逻辑块中且未连接到I/O的宏单元与非埋入的宏单元的区别

埋在逻辑块中且未连接到 I/O 的宏单元与非埋入的宏单元相同,是因为它们都有相同的逻辑功能和结构。它们都可以支持组合或寄存器输入,通用预置和复位,可配置的 D, T, 或 L 寄存器,以及最大的时钟灵活性。它们都可以从 ZIA 获取 36 对真/反输入信号,以及 48 个产品项(PT)。它们都可以使用可变功能复用器(VFM)来实现任意两输入逻辑函数。它们都可以从 8个时钟源中选择一个,以及 8 个输出使能源中选择一个。它们都可以将逻辑输出反馈到 ZIA,供其他逻辑块使用。

因此,埋在逻辑块中且未连接到 I/O 的宏单元与非埋入的宏单元的唯一区别是,前者可以作为输入寄存器,直接从 I/O 引脚获取输入信号,而后者必须经过 ZIA 互连矩阵。这样可以提高输入信号的同步性和速度。但是,这并不影响它们的逻辑功能和结构,所以它们仍然是相同的。

I/O单元

在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/bd690807bd53446daa758aff25eb446a.png ==200x150)

7.5 FPGA-Field Programmable Gate Arrays

7.5.1FPGA制作工艺

反熔丝Anti-fuse (non-volatile)

反熔丝技术的优点是具有高抗干扰性、低功耗、高可靠性和高保密性,适合于要求稳定性和安全性的定型产品。反熔丝技术的缺点是只能一次性编程,不具备可重配置性。另外还可能发生电迁移。

SRAM

用交叉耦合的反相器锁存数据。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/01356cd0bf70486f9215163c3f244d9a.png ==300x150)

EPROM 和 E²PROM

EPROM (可擦可编程只读存储器) 是一种非易失性存储器,用于储存计算机固件或数据。它通过光学方式进行编程和擦除,需要特殊的设备和条件。它的特点是速度快,但不具有可重配置性。

EEPROM (电可擦可编程只读存储器) 也是一种非易失性存储器,与EPROM相比,它可以通过电信号进行编程和擦除,更加方便灵活。它的特点是具有可重写性,但速度较慢,寿命较短。

Flash

7.5.2 FPGA的结构

在这里插入图片描述
(1) Configurable logic block (CLB)
包含组合逻辑,寄存器
(2) Input/output block (IOB)
包含输入输出,三态控制
(3) Interconnect
具有可编程的开关,连接点
(4) B-SCAN
边界扫描单元,用于测试。

7.5.3 布尔方程和逻辑生成器

7.5.3.1 布尔方程

1. 最小项Min-Term

F = f ( A , B ) F=f(A,B) F=f(A,B)的最小项有四个----AB A’B B’A A’B’
对于N变量的函数,最小项有 2 N 2^N 2N个最小项

2. 正则表达式Canonical expressions

f ( x 1 , x 2 , ⋅ ⋅ ⋅ , x n ) = ∑ i = 0 2 N − 1 α i m i , f(x_1,x_2,\cdot\cdot\cdot,x_n)=\sum_{i=0}^{2^N-1}\alpha_im_i, f(x1,x2,,xn)=i=02N1αimi,
其中 α i = 0 o r 1 \alpha_{i}=0\mathrm{~or~}1 αi=0 or 1
所以正则表达式具有 2 2 N 2^{2^N} 22N种可能性

3.香浓扩展定理Shannon’s expansion theorem

f ( x 1 , x 2 , ⋯ , x n ) = x i f ( x 1 , x 2 , ⋯ , x n ) ∣ x i = 1 + x i ‾ f ( x 1 , x 2 , ⋯ , x n ) ∣ x i = 0 f(x_1,x_2,\cdots,x_n)=x_if(x_1,x_2,\cdots,x_n)\bigg|_{x_i=1}+\overline{x_i}f(x_1,x_2,\cdots,x_n)\bigg|_{xi=0} f(x1,x2,,xn)=xif(x1,x2,,xn) xi=1+xif(x1,x2,,xn) xi=0

比如两个变量的扩展。
f ( x , y ) = x f ( 1 , y ) + x f ˉ ( 0 , y ) f(x,y)=xf(1,y)+x\bar{f}(0,y) f(x,y)=xf(1,y)+xfˉ(0,y)

4. 正则定理Canonical theorem

N变量的布尔函数可以独一无二的表示成下面这种形式。
f ( x 1 , x 2 , ⋯ , x n ) = f ( 1 , 1 , ⋯ , 1 ) x 1 x 2 ⋯ x n + f ( 1 , 1 , ⋯ , 0 ) x 1 x 2 ⋯ x n + ⋯ + + f ( 0 , 0 , ⋅ ⋅ ⋅ , 0 ) x ‾ 1 x ‾ 2 ⋅ ⋅ x n ‾ . \begin{aligned} f(x_1,x_2,\cdots,x_n)& =f(1,1,\cdots,1)x_1x_2\cdots x_n+f(1,1,\cdots,0)x_1x_2\cdots x_n+\cdots+ \\ &+f(0,0,\cdotp\cdotp\cdotp,0)\overline{x}_{1}\overline{x}_{2}\cdotp\cdotp\overline{x_{n}}. \end{aligned} f(x1,x2,,xn)=f(1,1,,1)x1x2xn+f(1,1,,0)x1x2xn+++f(0,0,⋅⋅⋅,0)x1x2⋅⋅xn.

对于两个变量来说,形式如下
f ( x , y ) = f ( 1 , 1 ) x y + f ( 1 , 0 ) x y + f ( 0 , 1 ) x y + f ( 0 , 0 ) x y ‾ f(x,y)=f(1,1)xy+f(1,0)xy+f(0,1)xy+f(0,0)x\overline{y} f(x,y)=f(1,1)xy+f(1,0)xy+f(0,1)xy+f(0,0)xy

7.5.3.2 逻辑生成器

1. 基于PT原理

f ( x 1 , x 2 , ⋅ ⋅ ⋅ , x n ) = ∑ i = 0 2 N − 1 α i m i f(x_1,x_2,\cdot\cdot\cdot,x_n)=\sum_{i=0}^{2^N-1}\alpha_im_i f(x1,x2,,xn)=i=02N1αimi
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/2110f0ec03ec4f719221d542b68fd8fe.png ==200x150)

2. 基于MUX原理

f ( x 1 , x 2 , ⋯ , x n ) = x i f ( x 1 , x 2 , ⋯ , x n ) ∣ x i = 1 + x i ‾ f ( x 1 , x 2 , ⋯ , x n ) ∣ x i = 0 f(x_1,x_2,\cdots,x_n)=x_if(x_1,x_2,\cdots,x_n)\bigg|_{x_i=1}+\overline{x_i}f(x_1,x_2,\cdots,x_n)\bigg|_{x_i=0} f(x1,x2,,xn)=xif(x1,x2,,xn) xi=1+xif(x1,x2,,xn) xi=0
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/5c3a0d704be3484f880cdbf0941c290f.png ==200x150)

具体示例1
在这里插入图片描述
具体示例2
在这里插入图片描述
普适构造思路:不断地抽取系数,直至最后变成二变量布尔表达式。最后用很多个MUX把这些表达式串起来。

我们来分析具体怎么做的:

  1. 把F中的B和/B提取出来将F改写成, B ⋅ ( A + D ) + B ‾ ⋅ ( C + D ) = B F 2 + B ‾ ⋅ F 1 B\cdot(A+D)+\overline{B}\cdot(C+D)=BF_{2}+\overline{B}\cdot F_{1} B(A+D)+B(C+D)=BF2+BF1
  2. 把F2中的A和/A提取出来将F2改写成 F 2 = A + D = A ⋅ 1 + A ‾ ⋅ D F_{2}=A+D=A\cdot1+\overline{A}\cdot D F2=A+D=A1+AD
  3. 把F1中的C和/C提取出来将F1改写成 F 1 = C + D = C ⋅ 1 + C ‾ ⋅ D F_{1}=C+D=C\cdot1+\overline{C}\cdot D F1=C+D=C1+CD
  4. F1和F2改写完已经是二值表达式了,所以最后可以用各种选择器实现了,注意提取出的系数作为控制端口。
3. 基于LUT原理

f ( x 1 , x 2 , ⋯ , x n ) = f ( 1 , 1 , ⋯ , 1 ) x 1 x 2 ⋯ x n + f ( 1 , 1 , ⋯ , 0 ) x 1 x 2 ⋯ x n + ⋯ + + f ( 0 , 0 , ⋯ , 0 ) x 1 x 2 ‾ ⋯ x n ‾ \begin{aligned} f(x_1,x_2,\cdots,x_n)& =f(1,1,\cdots,1)x_1x_2\cdots x_n+f(1,1,\cdots,0)x_1x_2\cdots x_n+\cdots+ \\ &+f(0,0,\cdots,0)\overline{x_1x_2}\cdots\overline{x_n} \end{aligned} f(x1,x2,,xn)=f(1,1,,1)x1x2xn+f(1,1,,0)x1x2xn+++f(0,0,,0)x1x2xn
在这里插入图片描述
原理:将布尔表达式的正则形式每种情况都算出来,把计算结果提前用D0和地址线存在锁存器里,后面碰到每种逻辑直接从锁存器里面读出来就好了。

7.5.4Configurable Logic Blocks

7.5.4.1. ACT Logic Modules

在这里插入图片描述
在这里插入图片描述
顺序单元 SE图如上。

7.5.4.2 XC 3000 CLB

在这里插入图片描述

Combinational Logic Options:

下图是CLB中生成逻辑的部分。
**加粗样式**

(a)组合逻辑选项FG生成两个函数,每个函数有四个变量。一个变量 A 必须对两个函数通用。第二个和第三个变量可以是 B、C、QX 和 QY 的任意选择。第四个变量可以是 D 或 E 的任意选择。

在这里插入图片描述

(b) 对于这部分图,组合逻辑选项 F 生成五个变量的任意函数:A、D、E 和 B、C、QX、QY 中的两个选项

在这里插入图片描述
(c) 组合逻辑选项 FGM 允许变量 E 在四个变量的两个函数之间进行选择:两者都具有共同的输入 A 和 D,其余两个变量具有 B、C、QX 和 QY 中的任意选择。然后,选项 3 可以实现 6 个或 7 个变量的一些函数。

我可以基于XC 3000 CLB的函数生成器来构造 F ( A , B , C , D ) = ( A ⋅ B ) + ( B ‾ ⋅ C ) + D F(A,B,C,D)=(A\cdot B)+(\overline{B}\cdot C)+D F(A,B,C,D)=(AB)+(BC)+D,算是利用LUT构造布尔表达式方法的一种
F ( 1 , 1 , 1 , 1 ) = 1 , F ( 1 , 0 , 1 , 1 ) = 1 , F ( 0 , 1 , 1 , 1 ) = 1 , F ( 0 , 0 , 1 , 1 ) = 1 , F ( 1 , 1 , 1 , 0 ) = 1 , F ( 1 , 0 , 1 , 0 ) = 1 , F ( 0 , 1 , 1 , 0 ) = 0 , F ( 0 , 0 , 1 , 0 ) = 1 , F ( 1 , 1 , 0 , 1 ) = 1 , F ( 1 , 0 , 0 , 1 ) = 1 , F ( 0 , 1 , 0 , 1 ) = 1 , F ( 0 , 0 , 0 , 1 ) = 1 , F ( 1 , 1 , 0 , 0 ) = 1 , F ( 1 , 0 , 0 , 0 ) = 0 , F ( 0 , 1 , 0 , 0 ) = 0 , F ( 0 , 0 , 0 , 0 ) = 0. \begin{aligned}&F(1,1,1,1)=1,\quad&F(1,0,1,1)=1,\quad&F(0,1,1,1)=1,\quad&F(0,0,1,1)=1,\\&F(1,1,1,0)=1,\quad&F(1,0,1,0)=1,\quad&F(0,1,1,0)=0,\quad&F(0,0,1,0)=1,\\&F(1,1,0,1)=1,\quad&F(1,0,0,1)=1,\quad&F(0,1,0,1)=1,\quad&F(0,0,0,1)=1,\\&F(1,1,0,0)=1,\quad&F(1,0,0,0)=0,\quad&F(0,1,0,0)=0,\quad&F(0,0,0,0)=0.\end{aligned} F(1,1,1,1)=1,F(1,1,1,0)=1,F(1,1,0,1)=1,F(1,1,0,0)=1,F(1,0,1,1)=1,F(1,0,1,0)=1,F(1,0,0,1)=1,F(1,0,0,0)=0,F(0,1,1,1)=1,F(0,1,1,0)=0,F(0,1,0,1)=1,F(0,1,0,0)=0,F(0,0,1,1)=1,F(0,0,1,0)=1,F(0,0,0,1)=1,F(0,0,0,0)=0.
在这里插入图片描述
我只要把输入选定成A、B、C、D四个,然后再配置LUT即可。

7.5.4.3 XC4000 CLB

相对XC3000 它更简单,而且有直通连线,如图红色部分。
在这里插入图片描述

1. 把XC4000 的逻辑生成器当RAM用
1. 16x2 (or 16x1) Edge-Triggered Single-Port RAM

在这里插入图片描述
这两个RAM共享的就只有WE,CLOCK信号,地址线和数据输入都是各自有一个。

2. 32x1 Edge-Triggered Single-Port RAM (F and G addresses are identical)

在这里插入图片描述
把两块小RAM合成一块,地址从0~31,由A0~A4控制(注意A4在D1的位置),D0是数据输入端口,WE控制写使能。

3. Dual-Port RAM, Simple Model

在这里插入图片描述
在这里插入图片描述

具体细节图如下
在这里插入图片描述
D0写进RAM1 和RAM2的数据是一样的,F1~F4控制写地址,G1~G4控制读地址

2. XC4000 中的超前进位链

在这里插入图片描述

7.5.5 可编程I/O

作用:

  • 驱动片外输入的逻辑
  • 接收并调理外部输入
  • 静电保护

7.5.5.1 三态门

在这里插入图片描述

7.5.5.2 XC3000 I/O

在这里插入图片描述

7.5.5.3 XC4000 I/O

在这里插入图片描述

7.6 亚稳态Metastability

在这里插入图片描述
亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态引时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。

触发器的建立时间和保持时间在时钟上升沿左右定义了一个时间窗口,如果触发器数据输入端口上的数据在这个时间窗口内发生变化(或者数据更新),那么就会产生时序违规。存在这个时序违规是因为违反了建立时间要求和保持时间要求,此时触发器内部的一个节点(一个内部节点或者要输出到外部节点)可能会在一个电压范围内浮动,无法稳定在逻辑0或者逻辑1状态。换句话说,如果数据在上述窗口中被采集,触发器中的晶体管不能可靠地设置为逻辑0或者逻辑1对应的电平上。所以此时的晶体管并未处于饱和区对应的高或者低电平,而是在稳定到一个确定电平之前,徘徊在一个中间电平状态(这个中间电平或许是一个正确值,又或许不是)。

个人认为:在同步系统中输入信号我们会设计成让其满足触发器的时序要求,所以不会发生亚稳态。但是,在异步系统中,由于数据和时钟的关系不是固定的,因此有时会出现违反建立和保持时间的现象。

当触发器处在亚稳态时,输出会在高低电平之间波动,这会导致延迟输出转换过程,并超出所规定的时钟到输出的延迟值( tco)。亚稳态输出恢复到稳定状态所需的超出tco的额外时间部分称为稳定时间 ( tMET)。一般来说,触发器都会在一个或者两个时钟周期内从亚稳态返回稳态。所以我们加两级触发器,这个亚稳态信号就可能变成稳态信号

更形象的看待亚稳态,如下图所示,触发器的运转类似于在光滑的山上滚动球,山的两边代表两个稳定状态(即高和低),山顶就代表亚稳态。假设球处在一个稳定的状态(即1或0),给球一个足够(满足建立和保持时间要求)的推力(状态转换),使这个球在规定时间内越过山顶到达另一个稳定的状态。然而,如果推力不够(即违反建立和保持时间),这个球就会到达山顶(即输出亚稳态),停留一段时间后再返回到一个稳定的状态(即最终输出稳定)。这个球也可能会上升一段路程就返回了(即输出可能产生毛刺)。这两种情况都会增加从时钟变化到稳定输出的延迟。
在这里插入图片描述
具体从亚稳态输出到稳态输出延迟的时序图如下所示。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c63826b7d8044321b7b864137622c868.png = 300x225)
图中tr表示延迟的时间。

这篇关于超大规模集成电路设计----基于阵列的可编程逻辑(七)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/854444

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者,全网30w+

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

Spring的设计⽬标——《Spring技术内幕》

读《Spring技术内幕》第二版,计文柯著。 如果我们要简要地描述Spring的设计⽬标,可以这么说,Spring为开发者提供的是⼀个⼀站式的轻量级应⽤开发框架(平台)。 作为平台,Spring抽象了我们在 许多应⽤开发中遇到的共性问题;同时,作为⼀个轻量级的应⽤开发框架,Spring和传统的J2EE开发相⽐,有其⾃⾝的特点。 通过这些⾃⾝的特点,Spring充分体现了它的设计理念:在

开题报告中的研究方法设计:AI能帮你做什么?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 大家都准备开题报告了吗?研究方法部分是不是已经让你头疼到抓狂? 别急,这可是大多数人都会遇到的难题!尤其是研究方法设计这一块,选定性还是定量,怎么搞才能符合老师的要求? 每次到这儿,头脑一片空白。 好消息是,现在AI工具火得一塌糊涂,比如ChatGPT,居然能帮你在研究方法这块儿上出点主意。是不

创业者该如何设计公司的股权架构

本文来自七八点联合IT橘子和车库咖啡的一系列关于设计公司股权结构的讲座。 主讲人何德文: 在公司发展的不同阶段,创业者都会面临公司股权架构设计问题: 1.合伙人合伙创业第一天,就会面临股权架构设计问题(合伙人股权设计); 2.公司早期要引入天使资金,会面临股权架构设计问题(天使融资); 3.公司有三五十号人,要激励中层管理与重要技术人员和公司长期走下去,会面临股权架构设计问题(员工股权激

分布式文件系统设计

分布式文件系统是分布式领域的一个基础应用,其中最著名的毫无疑问是 HDFS/GFS。如今该领域已经趋向于成熟,但了解它的设计要点和思想,对我们将来面临类似场景 / 问题时,具有借鉴意义。并且,分布式文件系统并非只有 HDFS/GFS 这一种形态,在它之外,还有其他形态各异、各有千秋的产品形态,对它们的了解,也对扩展我们的视野有所俾益。本文试图分析和思考,在分布式文件系统领域,我们要解决哪些问题、有

(入门篇)JavaScript 网页设计案例浅析-简单的交互式图片轮播

网页设计已经成为了每个前端开发者的必备技能,而 JavaScript 作为前端三大基础之一,更是为网页赋予了互动性和动态效果。本篇文章将通过一个简单的 JavaScript 案例,带你了解网页设计中的一些常见技巧和技术原理。今天就说一说一个常见的图片轮播效果。相信大家在各类电商网站、个人博客或者展示页面中,都看到过这种轮播图。它的核心功能是展示多张图片,并且用户可以通过点击按钮,左右切换图片。