原创 【博客大赛】所见即所得之Cyclone II架构中LE的详细描述(续)

2013-12-8 11:13 2320 16 17 分类: FPGA/CPLD 文集: 所见即所得(WYSIWSG)

续前篇:

----------------------------------我是分割线--------------------------------------------------------------

3LE寄存器原语

cycloneii_lcell_ff 

(

.datain(),

.clk(),

.aclr(),

.sclr(),

.sload(),

.sdata( ),

.ena(),

 

.regout( )

);

3.1LE寄存器输入端口

:逻辑单元(Logic Cell)的唯一标识符。这只是一个命名而已,任何在HDL合法的标识都可以在这里使用,该标识是必须的。

.datain( ):指示寄存器的数据输入端口。

.clk( ):指示寄存器的时钟输入端口。当寄存器的端口.datain、.sclr、.sload以及.ena任何一个使用的时候,时钟端口是必须。如果该端口未指定,那么默认情况下是接到GND上。

.aclr( ):指定逻辑单元的异步清零信号,如果未指定,默认情况下连结到GND。

.sclr( ):指定逻辑单元的同步清零信号,如果未指定,默认情况下连结到GND。一个LAB只有一个同步清零,所以sclr应该不是一个低扇出信号。所以同步清零信号一般扇出都比较大,否则会导致严重的fit问题和电路速度降低问题。

.sload( ):指定逻辑单元的同步加载信号。当.sload为高时,寄存器从.sdata端口同步地加载数据。因此,.sdata必须在.sload 使用的时候被使用。当未指定时,.sload 默认接GND。同样,一个LAB中只有一个同步加载,所以.sload不能是一个低扇出信号。

.sdata():指定逻辑单元的同步数据信号。当.sload为高时,寄存器从.sdata端口同步地加载数据。因此,.sdata必须在.sload 使用的时候被使用。当未指定时,.sdata默认接GND。

.ena( ):指定逻辑单元的时钟使能信号。当未指定时,.ena默认接VCC。

3.2LE寄存器输出端口

.regout ( ):指定逻辑单元寄存器输出。

3.3LE寄存器模式

         无模式。

3.4LE寄存器极性以及极性默认值

         表3描述了所有Logic Cell输入的极性以及可编程取反能力。能被可编程取反的端口信号具有双重极性。

表3:Logic Cell寄存器输入极性

1.jpg

如果在原语实例中没有明确的设置,那么逻辑单元寄存器中的端口信号默认是未连接任何信号的。

3.5LE寄存器控制信号优先级

         有几个不同的控制信号可以导致寄存器改变寄存器中存储的数值。如果有多于一个信号有效(逻辑1),那么处于最高优先级的信号将决定寄存器存储数值的状态。表4描述了这些控制信号的优先级。在一个给定的周期,如果没有一个控制信号有效,那么寄存器的正常输入端口的数据在时钟上升沿时被存储到寄存器中。

         比如如果aclr和sload在同一个时钟沿被置有效,那么aclr端口将被优先采用来清零寄存器,因此它具有第一优先级。

表4:LE寄存器控制信号优先级

1.jpg

 

3.6LE寄存器控制信号选择

         CycloneII架构中寄存器的控制信号基本和Cyclone一样非常灵活。每个LAB都包含有以下寄存器控制信号:

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

除了全局网络,每个LAB为以上八个控制信号提供了 四个普通布线连接。

3.6.1 时钟和时钟使能

         两个时钟使能和两个时钟信号的各种组合被用来创建两个LAB时钟。这样LAB中任何一个寄存器都可以从这两个时钟中选择自己的时钟。时钟可以使用专用全局时钟网络,也可以使用普通布线资源,但是时钟使能信号必须使用普通布线资源。一个总是被使能的时钟消耗掉两个LAB时钟线中的一个,但是不能使用LAB的四个普通布线资源之一来产生这种总是有效(VCC)的使能。

3.6.2 异步清零

         每个LAB有两个异步清零,所以每个LAB内的寄存器至多只有2种不同的异步清零组合。和Cyclone系列一样,只有其中一个能使用全局布线资源,剩下的一个只能使用普通布线资源。

3.6.3 同步清零(clear)和加载(load

         同步加载和清零的限制和Cyclone架构一样,每一个LAB只有一个同步加载和同步清零。所以整个一个LAB内的寄存器要么都使用同步加载和清零,要么都不使用。

         同步加载电路还可以通过将LAB范围的同步加载连接到VCC从而用于一种叫“lonely register”打包的情况,这意味着逻辑单元(Logic Cell)固定地用datac驱动寄存器的D输入端口。下一节中的图8显示了这种情况的物理实现。如果一个LAB的同步加载信号已经被使用了,那么“lonely register”就不可以被分配到该LAB。同样的,如果一个LAB的同步清零已经被使用,“lonely register”如果要分配到该LAB,那么这个寄存器就必须要使用该LAB的同步清零。

3.7LE寄存器结构框图

1.jpg

 

图5:LE中寄存器结构框图

4Cyclone II Logic Cell描述

         一个Cyclone II的Logic Cell是由组合逻辑和一个寄存器组合而成。图6显示的是一个Cyclone II的LE的逻辑框图。图6清晰展现了LE的输入和输出是如何连接到LE的组合逻辑模块和寄存器的,以及这些输入输出是如何相互连接的。

1.jpg

图6:Cyclone II逻辑单元逻辑框图

         图7则精确描述了Cyclone II逻辑单元的物理实现,图8则显示了上述lonely register打包特性。

1.jpg

 

图7:Cyclone II逻辑单元物理实现

1.jpg

 

图8:Cyclone II器件中独立寄存器打包

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

文章评论1条评论)

登录后参与讨论

用户432362 2013-12-2 17:23

压差大的时候,用BUCK电路主要是减少发热吗?

用户958476 2013-7-11 14:28

写的很好,我一直以为buck的输出会更稳定 驱动能力更强~

coyoo 2013-7-3 14:34

寄存器打包,即我们常常听ALTERA给大家介绍的Register packing。Cyclone II LE所见即所得文档并没有详细介绍LE的端口使用对寄存器打包的影响,但是在Cyclone的EDA开发指导中我们将会看到同步清零以及同步加载的使用对于一个寄存器打包到一个LE或者某个LAB中的影响。同时我们还可以看到对于同步清零和异步清零的理解,可以帮助我们理解我另外几篇博文中一直谈论的FPGA同步复位和异步复位的使用问题。
相关推荐阅读
coyoo 2024-11-16 13:54
不同ADC采样同一前端模拟信号时转换用时差异分析
概述 同一组前端模拟信号接入由不同型号ADC组成的模数转换电路时,采样后在FPGA中发现采样用时差异较大。本文主要分析这个时间差异形成的原因,并记录该差异产生对系统造成的影响。系统数字化简介 项目前端...
coyoo 2024-11-10 13:04
ALTERA Cyclone 10器件的使用-7:FPGA片内RAM资源利用率思考
概述 项目使用的FPGA目标器件为Cyclone 10 GX系列规模最大一颗料,由于功能升级增加了功能模块更多,发现器件片内RAM不够使用了。为了探索片内RAM使用的利用率问题,从代码RTL级与编译软...
coyoo 2024-11-10 12:30
转知乎:幽灵般的人体成像技术-PET
幽灵般的人体成像技术——PET - 知乎...
coyoo 2024-11-09 10:26
AD9633默认情况下调试记录(二)
概述 所谓默认情况,即如器件手册中图2所标示那样。对应AD9633的调试,除了涉及到ADC自身,还需要兼顾前端驱动器,系统中AD9633驱动器使用了差分运算放大器,这里不在赘述,笔者已有相关文章论述。...
coyoo 2024-11-07 10:40
AD9633默认情况下调试记录(一)
AD9633在旁路SPI接口时如何在FPGA逻辑中确认字边界概述 AD9633与FPGA之间的LVDS接口初调试,ADC可以通过SPI接口对其内部寄存器进行各项配置。在SPI接口未调通之前,对LVDS...
coyoo 2024-11-02 12:18
比较器检测模拟脉冲说明(三)
概述 继续说明(二)探讨的比较器使用问题,然后延展到高速比较器选型问题。第四次迭代已经修正了比较器与后级或门器件的互联端接问题,然而比较器输出仍然在较低参考阈值电压设置时出现了问题。本文主要探索该问题...
我要评论
1
16
关闭 站长推荐上一条 /2 下一条