热度 17
2013-12-8 11:13
2323 次阅读|
1 个评论
续前篇: ----------------------------------我是分割线-------------------------------------------------------------- 3 . LE 寄存器原语 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寄存器输入极性 如果在原语实例中没有明确的设置,那么逻辑单元寄存器中的端口信号默认是未连接任何信号的。 3.5LE 寄存器控制信号优先级 有几个不同的控制信号可以导致寄存器改变寄存器中存储的数值。如果有多于一个信号有效(逻辑1),那么处于最高优先级的信号将决定寄存器存储数值的状态。表4描述了这些控制信号的优先级。在一个给定的周期,如果没有一个控制信号有效,那么寄存器的正常输入端口的数据在时钟上升沿时被存储到寄存器中。 比如如果aclr和sload在同一个时钟沿被置有效,那么aclr端口将被优先采用来清零寄存器,因此它具有第一优先级。 表4:LE寄存器控制信号优先级 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 寄存器结构框图 图5:LE中寄存器结构框图 4 . Cyclone II Logic Cell 描述 一个Cyclone II的Logic Cell是由组合逻辑和一个寄存器组合而成。图6显示的是一个Cyclone II的LE的逻辑框图。图6清晰展现了LE的输入和输出是如何连接到LE的组合逻辑模块和寄存器的,以及这些输入输出是如何相互连接的。 图6:Cyclone II逻辑单元逻辑框图 图7则精确描述了Cyclone II逻辑单元的物理实现,图8则显示了上述lonely register打包特性。 图7:Cyclone II逻辑单元物理实现 图8:Cyclone II器件中独立寄存器打包