tag 标签: cycloneii

相关博文
  • 热度 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器件中独立寄存器打包                              
  • 热度 21
    2012-12-21 10:45
    3073 次阅读|
    0 个评论
    上一篇博文我们认识到了 Delay 模块和 Memory Delay 模块的区别,但是,貌似我们还有个问题没有明确,认识到它们的区别到底有什么作用呢?笔者先来将一个自己在 DSP_Builder 算法设计过程中遇到的问题。笔者设计一个小波分解的算法,该算法需要把数据按次序奇偶性分离,还需要对行数据和变换后的数据进行延时,因此需要大量使用 delay 模块或者 memory delay 模块,当算法设计完成进行编译时,一个奇怪的事情发生了, memory bits 资源只占用了 60% 左右,但提示 memory 资源不够。笔者为了揭开上述错误的谜团,才进行了上述博文的实验。 本次我们就来看一下到底为什么会出现上述现象。 我们先来讲述一个 FPGA 的基础知识。我们知道,对于 Cyclone II 系列的 FPGA ,其逻辑单元( LE )是构成 FPGA 的基本单元之一,一个 LE 由一个 4 输入的 LUT 、一个寄存器及进位和互连逻辑组成。但我们设计一个由少于 4 个输入端和 1 个数据输出端组成的电路时,一个 LE 足矣,但当我们由 5 个输入端和 1 个输出端组成电路时,就必须有两个 LE 构建,但有 1 个 LE 没有得到充分利用,其他电路能否再利用这个没有得到充分利用的资源呢,答案是不能。这个也就解释了为什么 FPGA 逻辑资源不可能达到 100% 的缘故。 受此影响,我们想,既然剩余的逻辑资源不能被再利用,那未用完的 M4K 资源能否得到再利用呢,为了说明这一点,我们做个试验,就一目了然了。笔者这个实验所用的芯片是 Cyclone II 的 EP2C8Q208C8 ,该芯片有 8256 个 LE ,以及 36 个 M4Ks 资源。我们这个实验是把该芯片上 36 个 M4Ks 全部耗尽,但每个都有剩余空间,看还能否再利用。 笔者设计了一个算法,如图所示。 这个算法很明显, 36 个 M4Ks 全部消耗完毕,但至少有两个 M4Ks 资源没有得到充分利用,我们编译完查看资源消耗情况也很清楚。 接下来,我们就在上图算法基础上再加一部分,如下图。 看到了吧,笔者意图相当明显,如果能够编译通过,那可以证明,未完全使用的 M4Ks 可以得到再利用;如果编译失败,要就只能说明, M4Ks 如同 LE 一样,未完全使用的只能被丢弃。 实践证明,编译失败。由此可以说明,一个 M4Ks 被用过以后,即使有剩余空间,也不能被再利用了。这个结论揭示了笔者在算法设计中遇到的问题, memory 资源占用率仅为 60% ,但确提示没有足够的 memory 资源。 由这两篇博文也揭示出一个道理:在算法设计过程中,功能的实现是前提,但算法的优化也是必不可少的。
  • 热度 14
    2012-7-17 11:47
    1713 次阅读|
    0 个评论
    摘要 本设计是旋转LED点阵广告牌,采用Altera公司Cyclone II系列的FPGA芯片CycloneIIEP2C5T144C8N作为核心器件实现对各功能模块电路的控制、同步检测、数据处理等功能。基于FPGA-CycloneII的旋转LED点阵广告牌的工作原理,在单列LED进行360度旋转时,如果将所有的发光二极管熄灭,由于视觉暂留感觉圆盘上方并没有图像,此时并在CycloneIIEP2C5T144C8N的控制下,在不同的位置在不同的时间区域让单列LED以不同的形式发光或者熄灭,从而显示出字符或者图像,并且字符或者图像给人一种悬浮在空中的感觉,具有视觉冲击力。此设计可以用于很多的场合,比如广告牌、家庭装饰、记分牌、娱乐显示等场所。   关键词:旋转LED点阵广告牌;FPGA;CycloneIIEP2C5T144C8N 一  方案设计与论证 1.1  系统方案设计与结构框图 1.1.1  系统方案设计 屏是通过一个旋转的支架,支架上单列的LED受CycloneII控制在特定的位置特定的时间亮或灭,从而显示出特定的字符或图形。本作品主要是根据人的视觉暂留原理设计的。人眼的视觉暂留时间是0.05S~0.2S的范围内,本设计采用220V交流电机带动LED高速旋转时,转动一圈的诗句只要小宇0.2S,从视觉效果上就会产生一种柱状的LED显示屏的状态。显示的字符或图形看起来是漂浮在空中的,不仅美观,而且新颖。 1.1.2  结构框图 本显示屏应由机械旋转部分、显示电路等几部分构成。结构框图如图1.1,如图所示所有显示部分的负载的电源均来自同一个电源。     图1.1  结构框图   1.2  旋转支架的方案设计与论证 本显示屏的2个设计方案只在机械旋转部分不同,软件部分相同。机械旋转部分由旋转支架和电机底座组成。本设计对机械部分要求高,特别的速度,速度上不去直接影响显示效果。速度的大与小完全取决于电机。由于电机的种类不同,如果扭矩过大的电机对旋转支架的制作也要严格,如果旋转支架质量不均匀,在电机启动后底座就会来回晃动,导致噪声的产生。根据以上情况设计出以下几种方案。 1.2.1  旋转支架方案设计 方案一:     旋转支架是一块长方形木条,将单列LED固定一个空铝管上,再将单列LED固定在长木条的一端,长木条的另一端通过连轴器和交流电机的轴固定。木板上放置LED驱动和电源,旋转支架及单列LED如图1.2。交流电机底座部分,将交流电机固定于木板上(木板中心有半径与电机一致的圆孔)。为了保证其稳定性,将电机与木板放入凹性铁槽中,打好孔后,用螺丝螺母固定。保险起见先看电机启动后,整个支架的稳定性,所以实验期间并没有放置FPGA。 图1.2  转动支架(方案一)      方案二: 旋转支架是一块以轴为中心的园盘,将单列LED(单列LED用4个发光二极管作为一个点,一个64个发光二极管形成16个点)固定在某一条直径上的一端,在各种元器件的摆放位置上尽量做到平衡放置的要求,所以在圆盘的圆心处放置电源、LED驱动、FPGA开发板(依次由下层到上层)。所有的部分都分别用螺丝固定在圆心处如图1.3所示。底座部分如图1.4所示,在凹形铁槽下方固定一块长方形木板,此木板与铁槽垂直。   图1.3  转动支架(方案二)   1.2.2  旋转支架方案论证 经过实验发现整机的机械结构是决定作品成败的关键。结构强度对稳定性影响很大。方案一在电机启动转动稳定后,由于以轴为中心的左右两端重量不对称,在加上电机力矩不够,使得在转动期间底座不稳定,来回晃动振动,而且由于发光二极管制作工艺上存在差别,在相同电流电压的情况下发光二极管的亮度不一样,所以LED亮度不够。方案二则针对方案一进行了改进,以四个发光二极管作为一个点,即增加了LED的亮度又提高了可靠性,由于四个二极管直接是并联的,如果有一个灯亮度不够或者坏了,其它的灯会弥补漏洞。底座的长方形木板与铁槽垂直固定就防止了底座的左右晃动,增强了底座的稳定性。(如图1.4)同时对转盘进行平衡调节,基本解决了转动的稳定性问题。由于我们的框架是纯手工制作,所以它的精度并不是很高,在高速旋转的情况下难免会有一定的声音。   图1.4  底座   1.3  电机选择的方案设计与论证 1.3.1  电机选择的方案 方案一: 由于需要高速旋转所以首先想到采用220V交流电机,电源容易获得。由于速度不理想,增加启动电容可以提高电机的速度。此电机本身接有容量为1.5µF耐压值为500V的启动电容,所以该接为容量为2µF耐压值为500V的启动电容,改接后的启动电容的容量与原启动电容的差值不可超过0.5µF,而耐压值必须高于400V。 方案二: 采用三相异步电机,三相电机速度快,扭矩大。不过三相异步电机的电源改为单相 ,方法为将其中两相接220V,第三相接电容,电容另一端接零线。电容的耐压值为400V以上的电容,由于三相异步电机的功率为90W,额定电流为39A,所以采用容量为5µF,耐压值为500V的电容。如果耐压值不够,则在启动电机后,不到半分钟电容将会发热,而且很烫手。所以不管电容的容量够不够,耐压值必须够。 1.3.2  电机方案论证 采用方案一,让所有的发光二极管发光,在电机启动后,在没有显示字符的情况下,经其他同学的观察后感觉速度慢。就采用方案二,用单相接三相异步电机,启动电机后,明显感觉速度快很多,可是由于三相异步电机扭矩很大,整个底座来回晃动,而且噪声很大。所以只能采用方案一,完成后显示字符后在看看效果。经过实验后发现应用方案一可以显示字符,而且噪音很小,底座也很稳定。 二  理论分析与计算 2.1  FPGA控制LED显示原理分析 这个设计对转速要求很高。由于人眼的视觉暂留时间在0.05S~0.2S之间,此设计旋转半径为16cm,所以每转动一圈所需的时间最多为0.2S。由于条件有限,在硬件制作方面花费了大量时间,而且转盘并不均匀,不过经过测量,转盘转速基本在478r/min,即每转动一圈所用的时间约为0.13秒,且小于0.2秒,以具有了视觉上的效果。由于半径为16cm,所以就形成了16乘100的点阵。由于CycloneIIEP2C5T144C8N系统时钟为50MHZ,即周期为20ns,如果只亮点阵的一列时,只需让单列LED发光时间大约持续计65000个系统时钟,这样在于红外对管配合即可完成显示。 2.2  红外对管原理分析 圆盘上有圆孔,发射部分固定在底座上,接收部分固定在圆盘上并且与圆孔重合,当圆盘转动到发射部分、圆孔、接收部分成一条直线时,开始计算,当圆盘第二次转动到发射部分、圆孔、接收部分成一条直线时,此时即为转动了一圈。这就是红外对管的作用,否则由于圆盘质量并不均匀,仅仅凭借软件是无法判断是否转动一圈的。 三  系统硬件设计 3.1  LED显示电路设计 如图3.1所示,用16个9012三极管驱动64个二极管,每个三极管驱动4个发光二极管。当基极输入低电平时三极管导通,发光二极管发光。     图3.1 发光二极管驱动电路图   3.2  红外对管设计     当D1发出的光照射到D2是,D2导通,则此时基极为高电平,9013三极管导通,向FPGA的IO口送入高电平,从而达到检测位置的目的。   图3.2  红外对管电路图   3.3  电源 电源采用8V电池供电,用LM7805转换成5V。为FPGA与LED供电。   图3.3  电源 四  系统软件设计 4.1  动态显示程序流程图 由于旋转支架质量并不均匀,所以每一圈转速并不一致。必须加一个标志位,确定起始位置,这样就能准确的知道是否转动了一圈。如果检测到起始位置,则开始控制LED亮灭的方式以及亮灭的位置即时间,当回来又检测到起始位置信号,说明已经旋转了一圈,这时需复位,即再按前一圈的模式控制LED显示状态。这样在支架所转动后形成的圆柱侧面就显示出一行字,这行字在各自的位置上固定不懂,这就是静态显示(字符并不移动)。静态显示受显示屏本身大小的限制,显示的字数有限。相对的就有动态显示。   图4.1  静态显示程序流程图   4.2  动态显示程序流程图 检测过程与静态显示一样,动态显示只是显示部分由变化。如果检测到起始位置,则开始控制LED亮灭的方式以及亮灭的位置即时间,如图4.2动态显示程序流程图,第一次控制LED以显示模块1的形式显示,当回来又检测到起始位置信号,说明已经旋转了一圈,此时则控制LED以模块2(模块n)的形式显示,依次循环,直到所有显示完毕。这样在支架所转动后形成的圆柱侧面就显示出一行动态变化的语句,语句中的每个字慢慢的向前移动,直到这句话结束。这就是动态显示。动态显示不仅仅局限于语句的移动,也可以是图画等更具观赏性的显示。   图4.2  动态显示程序流程图 五  系统测试与数据分析 5.1  基本部分的测试 FPGA的开发采用Verilog语言(硬件描述语言),完成Verilog设计文件后,经过前仿真(功能仿真)、综合、布局布线、后仿真(门级仿真)后,下到芯片里就形成实实在在的电路,所以严格意义上讲FPGA开发不是在“写程序”,而是在“描述电路”。在FPGA的开发流程中仿真是非常重要的,仿真过程大约占开发总流程80%的时间,各大EDA公司对仿真过程在人力投入上也占到80%左右。 5.2  数据分析 我们采用业界流行的仿真工具Modelsim SE 6.0,各个功能模块的前后仿真均已通过。仿真图如下图5.1,此仿真波形为对时钟的分频,分频后的波形周期约为转动一圈的时间。此周期大约持续计65000个系统时钟。这样就可以进行静态显示和动态显示了。   图5.1   六 结语 本设计实现了LED点阵的静态显示、动态显示,显示出的字符在视觉上产生一种悬浮的感觉。制作过程中发现整机的机械结构是决定作品成败的关键,由于我们的框架是纯手工制作,所以它的精度并不是很高,在高速旋转的情况下难免会有一定的声音,但由于时间有限,系统还存在一些误差,存在很多有待改进的地方。 在制作旋转支架时最为艰难,旋转支架想到过很多方案,在实验过程中想到的方案一定要去实践,只要实践过后才知道此方案是否可行,凭空想象是不行的,否则时间久一点一点的浪费了。其次就是底座和旋转支架组合后效果一直上不去,纯手工制作的旋转支架根本不可能做出质量均匀的支架来,所以只能从细节着手,尽量让所有负载位于以电机轴为中心的位置上。 在心态方面也得到了成长。由于硬件制作过程花费了很长时间,其中有一段时间想要放弃,电机转速问题、底座稳定问题等困扰着我们,由于条件和知识有限很多问题难以解决,不过我们还是坚持了下来。经历了这个过程让我明白只有坚持即使前一秒没有希望,但后一秒就说不好了,不到最后一秒钟绝不放弃。要本着有什么用什么的原则,不是用什么有什么,这样才能在困难中崛起。 参考文献 夏宇闻.《Verilog数字系统设计教程》(第二版) .北京市海淀区学院路37号.北京航空航天大学出版社.2008.6。 华成英,童诗白.《模拟电子技术基础》(第四版) .北京市西城区德外大街4号:高等教育出版社.2006.6。 王诚,蔡海宁,吴继华.《Altera FPGA/CPLD设计基础篇》(第2版).北京市崇文区夕照寺街14号.人民邮电出版社,2011.2。 阎石.《数字电子技术基础》(第四版) .北京市西城区德外大街4号:高等教育出版社.2006.6。 王冠.《面向CPLD/FPGA的Verilog设计》.机械工业出版社.2007.4. 林灶生.《verilogFPGA芯片设计》.北京航空航天大学出版社.2006.7。 吴厚航.《深入浅出玩转FPGA》.北京航空航天大学出版社.2010.5。 吴继华,王诚.《设计与验证Verilog HDL》. 人民邮电出版社.2006.8。 (美)克里兹 著,孟宪元 译.《高级FPGA设计结构、实现也优化》. 机械工业出版社.2009.2。 Altera Cyclone II Device handbook.      http://www.altera.com.cn/literature/hb/cyc2/cyc2_cii5v1.pdf.   附录        
相关资源
  • 所需E币: 5
    时间: 2020-1-4 23:44
    大小: 2.32MB
    上传者: 二不过三
    CycloneII_器件手册……
  • 所需E币: 4
    时间: 2019-12-24 20:29
    大小: 81.5KB
    上传者: rdg1993
    cycloneII经典问答1.问:CycloneII系列器件是什么?答:CycloneII系列器件是Altera低成本Cyclone系列的第二代产品,CycloneIIFPGA的成本比第一代Cyclone器件低30%,逻辑容量大3倍多。CycloneII器件采用TSMC经验证的90nm低K绝缘材料工艺技术,是业界成本最低的FPGA。   CycloneII器件容量有4608~68416个逻辑单元,还具有新的增强特性,包括多达1.1Mbit的嵌入存储器、多达150个嵌入18×18乘法器、锁相环、支持外部存储器接口及差分和单端I/O标准。2.问:CycloneII器件系列采用什么样的工艺技术?答:CycloneII器件系列是采用TSMC的1.2V、90nm、低K绝缘材料工艺。3.问:CycloneII器件系列满足了哪些市场的需求?答:CycloneII器件系列是多种不同市场上大批量应用最优的低成本方案,包括消费电子、电信和无线、计算机外设、工业和汽车。CycloneII器件包含了许多新的增强特性,如嵌入存储器、嵌入乘法器、PLL和低成本的封装,这些都为诸如视频显示、数字电视、机顶盒、DVD播放器、DSL调制解调器、家用网关和中低端路由器等批量应用进行了优化。4.问:为什么CycloneII器件是ASIC理想的替代方案?答:CycloneII系列提供了一种灵活的无风险的,且没有前期一次性工程费用或最小定货量的开发方式。CycloneII器件除了具有其它任何FPGA无可匹敌的成本结构之外,还具有先进的特性,如用于高性能数字信号处理应用的嵌入式18×18乘法器和支持如DDR2(高达334Mbps)和QDRII(高达688Mbps)的存储器接口。5.问:CycloneII器件有哪些产品,提供哪些封装?答:CycloneII……