1. 概述
成立于1983年的Altera公司(Altera International Limited), 在可编程系统级芯片(SOPC)领域中一直处于前沿和领先的地位,其2003年度的年收入高达8.272亿美元。它将其发明的可编程逻辑技术与软件工具、IP和设计服务相结合,向全世界近14,000家客户提供可编程解决方案。Altera所推出的FPGA器件被定位成昂贵且成本极高的解决方案(例如ASIC和ASSP)的替代品。具有灵活性、性价比高、易用等特点。
Quartus®II是Altera为FPGA、CPLD和结构化ASIC器件提供的专用EDA工具。该软件优点有:性能上的领先优势;设计流方法学支持的领先优势;领先的系统设计和IP集成方法;领先的布局布线技术;领先的时序靠近技术;领先的验证方案和领先的第三方合作伙伴的EDA支持。
2. 应用背景

图1:T比特路由器4X2.5G线卡输出部分逻辑框图
笔者参与研究的国家863课题-“T比特路由器项目”,在4X2.5GPOS线路接口卡输出部分的设计中,输出FPGA采用了Altera公司的Stratix™ GX系列EP1SGX40G (简称40G)芯片实现。而SDH链路层处理芯片采用了AMCC公司的S19202CB130(简称S19202)。输出部分逻辑框图如图1所示:
由于S19202时钟为200MHz高速时钟,且数据分片接收。造成输出FPGA输出缓存模块占用整体资源过多,顶层设计程序时序分析无法通过。时序分析结果见图2:

图2 时序分析结果(逻辑锁定前)
图中显示数条路径(Path)无法达到200MHz的频率,成为致命路径(Critical Path)。这是由于Quartus®在分析综合(Analysis&Synthesis)VHDL程序后,进行布局布线(Route&Placement)时无法均匀的使用片内资源,导致局部资源过紧,无法满足时序要求。
本文下面介绍如何通过Quartus®提供的LogicLock解决这一问题。
3. 解决办法
逻辑锁定方法学(LogicLock Methodology),内容就是在设计时采用逻辑锁定的基于模块设计流程(LogicLock block-based design flow),来达到固定单模块优化的目的。这种设计方法学中第一次引入了高效团队合作方法:它可以让每个单模块设计者独立优化他的设计,并把所用资源锁定。这样在合成顶层设计时就可以保持每个模块的性能。且它还让逻辑模块可重复使用,提高了资源利用率,缩短了设计周期。逻辑锁定的基于模块设计设计流程与传统设计流程对比见图3。

图3 两种设计流程比较
具体做法是:
首先,分析整体资源利用率。EP1SGX40G型号的FPGA具有41,250个逻辑单元(LE),20个全双工收发器通道,45个全双工源同步通道,RAM总量3Mibt,14个DSP模块;112个嵌入乘法器,8个PLL,芯片封装为1020管脚BGA封装。输出缓存模块包括4个高速FIFO,预计将使用≤7%的逻辑单元,且40G恰好有4个容量为4-Kbits的M4K缓存块,故性能完全可以满足需求。理论上只要保证重点模块的资源利用率,就能保证整体设计的性能。
然后采用逻辑锁定的基于模块设计流程(LogicLock block-based design flow)进行设计。步骤如下:
1. 在Quartus®中综合单模块;
2. 优化重点模块,进行逻辑锁定。对输出缓存模块逻辑锁定区域见图4:

图4 逻辑锁定区域在片上的位置
反标(back-annotaing)布线信息见图5:

图5 反标内容设置
3. 导出模块逻辑锁定约束信息。包括原级网表(atom netlist)文件(.vqm)、布局信息(placement information)文件(.qsf)、和布线信息(routing information)文件(.rcf)。
4. 将这些约束文件导入到顶层(top-level)工程中;
5. 编译和验证整个顶层设计。
编译完成后,时序分析结果见图6:

图6 时序分析结果(逻辑锁定后)
如图所示,所有路径实际频率都已达到200MHz,完成了预期的目的,解决了整个模块的性能瓶颈。
4. 结论
通过应用一种新的设计方法学-逻辑锁定方法学(LogicLock Methodology),采用了模块化、团队化的设计流程,对重点模块进行优化,解决了传统设计流程无法解决的问题。同时对其他FPGA设计工程中类似的问题,提供了可借鉴的思路。




