1. 逻辑单元 (LE) 在 Cyclone IV 器件结构中是最小的逻辑单位。LE 紧密且有效的提供了高级功能的逻辑使用。每个 LE 有以下特性:
一个四口输入的查找表 (LUT),以实现四种变量的任何功能
一个可编程的寄存器
一个进位链连接
一个寄存器链连接
可驱动以下的相互连接:本地、行、列、寄存器链、直连。

2. 看下图,可以对每个 LE 配置可编程的寄存器为 D、 T、 JK, 或 SR 触发器操作。每个寄存器上有数据,时钟,时钟使能和清零输入。全局时钟网络,通用 I/O 管脚,任何内部逻辑都可以驱动时钟和清零寄存器控制信号。每个 LE 有三个输出端分别驱动本地,行和列的布线资源。在下图中有一个Register Bypass就是说我们可以不使用寄存器,让LUT(4输入查找表)的输出直接接行,列,直连,此时LUT和寄存器可以分别驱动不同的输出端,这个叫做寄存器套包。

除了三个通用布线输出之外,在一个 LAB 上的 LE 有寄存器链输出,使得同一个 LAB 中的寄存器能够串联在一起。寄存器链输出使 LUT 能够被用于组合功能,实现寄存器被用于一个不相关的移位寄存器。这些资源加速了 LAB 之间的连接,同时节省本地互联资源。

问题:刚开始一直没搞懂直连(Direct Link直接链接布线)和本地互联(本地布线)的区别。后面解答我的理解。

3. 本地是什么意思,下面要说的是逻辑阵列模块LAB,每个 LAB 包括以下特性:

16 LE
LAB 控制信号
LE 进位链
寄存器链
本地互联

4. 本地互联在同一个 LAB 的 LE 之间传输信号。寄存器链连接把一个 LE 寄存器的输出传输到 LAB 中相邻的 LE 寄存器上。

看下图标位1的三根红线,意思是本地LAB驱动隔壁LAB互联,标位为2的三根线是本地互联去驱动隔壁LAB。注意好像LAB不能直接驱动隔壁的LAB。注意这6根是直接链接布线。

问题:刚开始一直没搞懂直连(Direct Link直接链接布线)和本地互联(本地布线)的区别。如果是同一个LAB内部的LE连接的话使用本地互联,如果是LAB(+它的本地互联)去连接隔壁的LAB(+它的本地互联)使用直接链接布线。那么它和行、列区别是什么?直连只能连接隔壁的,行、列可以连接很远的LAB(+它的本地互联)。

邻近的 LAB, 锁相环 (PLL),M9K RAM 模块和嵌入式乘法器由左到右通过直接链接连接也可以驱动 LAB的本地互联。直接链接连接功能最小化行和列互联的使用,以提供更高的性能和灵活性。每个 LE 通过加速本地和直接链接互联可以驱动多达 48 个的 LE。为什么是48个呢?它自己的16个,加上左边和右边隔16个,所以是48个。

5. LAB的控制信号,每个 LAB 都包含专用的逻辑以驱动控制信号各自 LE。可以看第2点的图上面的信号,一一对应,控制信号包括:

两个时钟
两个时钟使能
两个异步清零
一个同步清零
一个同步加载

6. LE的操作模式,正常模式和算术模式。正常模式适用于一般的逻辑运用和组合功能。在正常模式中,来自 LAB 本地互联的四个数据输入口输入到一个四口输入的 LUT 中。Quartus II 编译器自动选择carry- in (cin) 或data3信号作为其中一个输入到 LUT。LE 在正常模式中支持套包寄存器和寄存器的反馈。

7. 算术模式,算术模式对于加法器,计数器,蓄能器和比较器的实现是理想的。一个 LE 在算术模式中实现一个 2 位全加器和基本的进位链 。LE 在算术模式中可以驱动 LUT 输出存储与未存储的版本。寄存器反馈和寄存器套包都支持 LE 用于算术模式。我对于下图全加器和进位链的具体实现不是很懂,有空研究下。

Cyclone IV器件的逻辑单元和逻辑阵列快的更多相关文章

  1. 笔记之Cyclone IV 第一卷第二章Cyclone IV器件的逻辑单元和逻辑阵

    逻辑单元 (LE) 在 Cyclone IV 器件结构中是最小的逻辑单位.LE 紧密且有效的提供了高级功能的逻辑使用.每个 LE 有以下特性 ■ 一个四口输入的查找表 (LUT),以实现四种变量的任何 ...

  2. 笔记之Cyclone IV第一卷第四章Cyclone IV器件中的嵌入式乘法器

    嵌入式乘法器可以配置成一个 18 × 18 乘法器,或者配置成两个 9 × 9 乘法器.对于那些大于18 × 18 的乘法运算 ,Quartus II 软件会将多个嵌入式乘法器模块级联在一起.虽然没有 ...

  3. 笔记之Cyclone IV 第一卷第一章FPGA 器件系列概述

    因为本人用的黑金四代开发板,中央芯片采用ALTERA的cycloneIV E,所以就此器件阅读altera官网资料,并做相应的笔记,以便于以后查阅 Cyclone IV 器件系列具有以下特性:■ 低成 ...

  4. 笔记之Cyclone IV第一卷第三章器件中的存储器模块

    嵌入式存储器结构由一列列 M9K 存储器模块组成,通过对这些 M9K 存储器模块进行配置,可以实现各种存储器功能,例如:RAM.移位寄存器. ROM 以及FIFO 缓冲器. M9K 存储器模块支持以下 ...

  5. Altera的Cyclone系列器件命名规则

    Altera的Cyclone系列器件命名规则如下 器件系列 + 器件类型(是否含有高速串行收发器) +  LE逻辑单元数量 + 封装类型 + 高速串行收发器的数量(没有则不写) + 引脚数目 + 器件 ...

  6. Cyclone IV FPGA 器件笔记

    LE(逻辑单元)操作模式 1) 正常模式 2)算术模式 可以看到对于Cy4来说正常模式和算术模式的区别就是正常模式有一个4输入LUT没有cout进位输出,而算术模式有两个3输入LUT有cout进位输出 ...

  7. altium designer应用技巧---cyclone IV代芯片底部焊盘问题

    首先对于 altera 公司的FPGA芯片来讲,在cyclone III代以上,芯片的底部增加了一 个焊盘,很多工程师往往以为是散热用,其实不然,底部焊盘需要接地(altera手册上面 明确规定,Th ...

  8. 使用Cyclone IV控制DDR2

    根据你的DDR2手册配置好megacore,megacore会生成一个example top: 在quartus中运行megacore生成的xxx_pin_assignments.tcl,指定DDR2 ...

  9. cyclone iv中DDR2的本地接口时序

    本地接口 信号名 方向  描述  local_burstbegin input 如果local_ready无效不起作用.IP核在local_write_req为高时,在phy_clk上升沿采样.当lo ...

随机推荐

  1. log4net 配置完成后发现不能输出日志的解决方法

    配置好log4net后发现日志不能输出,打开调试看一下几个属性都是false,(比如isdebugenable =false)这其实是项目的启动时候没有加入一行声明代码导致的,可以在程序的Assemb ...

  2. luogu P1503 鬼子进村

    嘟嘟嘟 线段树好题. 其实挺水的,想暴力怎么做:每一次从这个点开始向两边扩,直到遇到第一个摧毁的房屋. 那么把暴力改成倍增,然后线段树查询区间和是否为0.时间复杂度O(nlog2n). 题解好像有线段 ...

  3. spring boot应用启动原理分析

    spring boot quick start 在spring boot里,很吸引人的一个特性是可以直接把应用打包成为一个jar/war,然后这个jar/war是可以直接启动的,不需要另外配置一个We ...

  4. 【洛谷P1879】玉米田Corn Fields

    玉米田Corn Fields 题目链接 此题和互不侵犯状压DP的做法类似 f[i][j]表示前i行,第i行种植(1)/不种植(0)构成的二进制数为j时的方案数 首先我们可以预处理出所有一行中没有两个相 ...

  5. Centos安装VMware

    转载:http://www.mamicode.com/info-detail-2171464.html

  6. pl sql 存储过程、函数

    存储过程用于执行特定的操作,当建立存储过程时,既可以指定输入参数(in),也可以指定输出参数(out),通过在过程中使用输入参数,可以将数据传递到执行部分:通过使用输出参数,可以将执行部分的数据传递到 ...

  7. ios应用数据存储方式(归档) - 转

    一.简单说明  1.在使用plist进行数据存储和读取,只适用于系统自带的一些常用类型才能用,且必须先获取路径相对麻烦.  2.偏好设置(将所有的东西都保存在同一个文件夹下面,且主要用于存储应用的设置 ...

  8. Ajax提交乱码

    1. 页面码 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&g ...

  9. ECMAScript面向对象术语

    面向对象术语1.对象ECMA-262 把对象(object)定义为“属性的无序集合,每个属性存放一个原始值.对象或函数”.严格来说,这意味着对象是无特定顺序的值的数组.尽管 ECMAScript 如此 ...

  10. 重新格式化hadoop的namenode导致datanode无法启动的最简单解决办法

    一般namenode只格式化一次,重新格式化不仅会导致之前的数据都不可用,而且datanode也会无法启动.在datanode日志中会有类似如下的报错信息: java.io.IOException: ...