提升创造力的数字设计工具:FPGA Editor

发布者:LIGANG888最新更新时间:2009-03-12 来源: 电子产品世界关键字:FPGA  Editor  数字设计 手机看文章 扫描二维码
随时随地手机看文章

      工程师在设计过程中,经常需要一定的创造力(不妨称之为数字管道胶带)才能够保证设计的顺利完成。过去8年时间里,我曾经目睹许多优秀工程师利用这一方法出色地完成了许多工作,而他们采用的最主要工具就是FPGA Editor。

       利用FPGA Editor,你可以察看完成的设计并确定是否在FPGA构造一级真正实现了设计意图 – 而这对于任何工程师或现场应用工程师来说都是非常需要的。假设你拿到协作者的设计,需要对其进行修改,但他们的HDL源代码非常难于理解,或者根本没有任何注释或文档。也许你只是想将某些时钟逻辑锁定,但却不知道实例的名称或者如何将其锁在所希望的位置。下面讨论的一些用来探查FPGA构造以及创建命令行补丁的技巧可以帮助设计人员满足不断迫近的任务期限要求。

      FPGA构造勘察技巧

      当赛灵思发布针对新FPGA器件的工具时,通常我做的第一件事就是打开FPGA Editor来勘察FPGA器件的内部构造。具体做法是找到Xilinx → ISE →Accessories菜单并点击FPGA Editor图标,或者在命令行键入fpga_editor。图形用户界面打开后,在File菜单下选择New。FPGA Editor会询问设计文件名称和物理约束文件。此时还没有任何设计文件,因此随便键入一个设计文件名(例如,test.ncd),并选择希望察看的器件类型。FPGA Editor将会使用同样的名字作为物理约束文件的名称,并加载一个空白设计。

      另一种方法是编译随软件提供的某个ISE工具套件设计例子,并将其加载到FPGA Editor中来察看FPGA构造。加载一个设计实例可以显示更多细节,并且更容易定位感兴趣的项目。
在FPGA Editor中浏览只需要记住两件事:

      1、如何利用CTRL / Shift快捷键进行放大缩小。

      2、如果利用F11键放大选定的项目。

      不使用GUI按钮快速缩放的方法是,按住Ctrl 和 Shift键,然后分别利用鼠标左键和右键进入放大和缩小。要想快速找到任何项目,在GUI右上角的列表窗口(List window)中选择该项目即可。一旦定位了想找的项目,按F11键。阵列窗口(Array window)就会放大显示该项目。

      FPGA Editor有四个主要窗口:列表(List)、全局(World)、阵列(Array)和块(Block)。List窗口显示设计中所有活动的项目。通过此窗口顶部的下拉菜单可选择其内容 – 列表内容包括已经布局或还未使用的部件、网络或未布线的网络等等。

      全局视图窗口(World Windows)始终显示完整FPGA硅片视图,这在试图确定某个网络的布线情况时非常有用。同时,阵列窗口(Array window)则是FPGA构造和逻辑的动态视图。如果双击Array视图中的任何项目,会显示Block视图,给出所选择项目或逻辑单元的详细情况。

      利用FPGA Editor,你可以察看物理实施后的设计并确定是否在FPGA构造一级真正实现了设计意图 – 而这对于任何工程师或现场应用工程师来说都是非常需要的。

      为方便浏览或对设计进行编辑,这些窗口可以复制。许多情况下,打开第二个Array窗口会比较方便同时在设计的两个不同部分工作。例如,假设需要在全局时钟缓冲器和芯片底部的触发器之间增加一条布线。如果在一个Array窗口中显示全局时钟缓冲器的输出,另一个Array窗口则显示触发器时钟输入,那么会做起来会更方便。不然的话就必须来回缩放来定位布线的两端,显然这很繁琐。
在FPGA Editor GUI的右侧是一组由20个功能按钮组成的工具条,用于设计察看和编辑。通过编辑$XILINX/data目录下的fpga_editor.ini文件可以增加更多功能按钮。当察看设计时,应当随时使用INFO按钮。该功能会将所选择项目的所有信息转录到控制台(Console)窗口。这一功能非常方便,你可以在控制台窗口中标注数据并将其拷贝到其它地方使用,例如编写UCF约束。

      一旦了解了最基本的概念和操作,就可以开始察看FPGA构造。通常都从时钟逻辑开始。这包括数字时钟管理器(DCM)、锁相环(PLL)、全局时钟缓冲器(BUFG)、区域时钟缓冲器(BUFR)、I/O缓冲器(BUFIO)以及不同的时钟区域。(要想按字母列出项目表,可以到LIST窗口点击Type来排序。)点击一个DCM并按F11。ARRAY窗口会定位到选择的DCM并放大显示它。继续点击DCM并观察GUI底部的Console窗口,其中会显示与下面类似的内容:

      comp “DCM_BASE_inst_star”, site “DCM_ADV_X0Y9”, type = DCM_ADV
      (RPM grid X73Y202)
       这是有用的数据。 拷贝并粘贴上述内容到UCF文件中,并作如下更改以锁定这一DCM逻辑:
       INST “DCM_BASE_inst_star”
       LOC=DCM_ADV_X0Y9;
       利用这一方法,几乎可以锁定FPGA中的任何项目。 下面是BUFG锁定的另一个例子:
       comp “BUFG_inst_star”, site “BUFGCTRL_X0Y20”, type = BUFG (RPM grid X73Y124)
       INST “BUFG_inst_star”
      LOC=BUFGCTRL_X0Y20;

      再次回到List窗口并标注同一DCM。 双击之后将会在Block视图中显示该DCM以及所有设置和参数。这是一项非常强大的功能,可用于FPGA构造中的任何逻辑项目。如果选择一个逻辑片并双击它,就可以看到逻辑片是如何布线连接的,以及是否使用了进位链或本地触发器。

      Block视图的按钮条包含许多其它选项。值得一提的是 F= button按钮,其功能是显示逻辑片中使用的项目的完整配置。例如,如果使用了一个LUT6和一个触发器,按下F= 按钮将会给出LUT的布尔方程以及触发器的配置模式。

      阅读赛灵思用户指南是一回事,而从计算机屏幕上展开的视图上探察所有逻辑、开关和参数则是另一回事。一旦熟悉了FPGA构造及所有资源,那么在编写和验证设计时获得的帮助将会令人感到惊奇。

      在设计流程中记录生成补丁脚本

      当用户在GUI环境中编辑设计时,FPGA Editor能够记录用户动作。用户不仅可以保存记录动作流程,还可在以后重新使用记录的脚本并加以重复。当无法更改RTL,但又需要在设计过程中对设计进行修改时,这一功能特别有用。假设设计采用了第三方IP或赛灵思加密IP,其中包括一个全局时钟和一个DCM来生成称为 interface_clk的时钟。然后再假设接口所连接的ASIC出现问题,无法在预定的interface_clk的上升沿接收数据。如何修正这一问题?

       当然,你可以改变PCB,更换出现问题的ASIC或者让第三方IP小组来修改时钟输出逻辑以提供90度相移的interface_clk。所有这些解决方案都既耗费时间又成本高昂。一个更简单的建议是利用FPGA Editor来记录修改动作,对interface_clk逻辑进行必要的更改,从而为出现问题的ASIC提供正确的时钟相位。一旦有了相关修改的FPGA Editor脚本,就可以回放这些命令行脚本记录的修改步骤,而你也可以正常继续你的FPGA设计流程。当出现问题的ASIC修复正常以后,你只需要将FPGA Editor脚本从编译脚本中移除就可以,而interface_clk也会恢复其正常的行为。

      要想对设计进行手动编辑,首先需要在FPGA Editor中开启读/写(read/write)权限。在菜单条中点击File → Main Properties。在此菜单下,可以调整编辑模式(从No logic Change到Read/Write)。点击Apply,现在就可以开始对设计进行编辑了。在下一步利用FPGA Editor记录对设计进行的所有修改时,只需要简单地从菜单条中点击Tools → Scripts →Begin Recording。FPGA Editor将会提示输入一个脚本名字(如patch.scr)。输完脚本名字,就可以对设计进行必要的修改了。

      在设计中运行设计规则检查(DRC)来看一下是否有规则冲突的红色标志是一个很好的方式。在我的设计例子中,有14条警告,但都可以忽略。下一步我们将需要定位interface_clk使用的DCM,并为此DCM的90度相移输出创建另一个称为DCM_clk90_out的时钟。这需要利用全局时钟布线资源将时钟连接到BUFG。要增加一个BUFG,先在FPGA构造中找到一个未用的BUFG位置,右击并选择 Add(添加)。然后,工具会提醒你为BUFG命名(clk90_bufg)并确定其类型:BUFG(参见图1)。



图1 属性窗口允许用户配置并命名选定的逻辑项目

      创建了新的BUFG,就需要将其输入和输出连接到适当的位置。在本例中,DCM的90度相移输出将驱动BUFG。在窗口Array1中,点击DCM的90度输出端衰减器,在窗口Array2中,点击BUFG的输入端衰减器,同时按住Ctrl键,可实现连接。然后释放Ctrl键,点击鼠标右键并选择Add。工具会提示为新网络连接输入名字。这样就将DCM 和 BUFG通过新网络连接到一起了(参看图2)。



      图2 在两个逻辑项目中手动布线时,如红色三角所示,使用两个Array窗口可以轻松选择源头和目标clk90_bufg的输出要代替由原interface_clk驱动的IOB上的时钟。要将IOB从原来的时钟域中移开,需要定位IOB,标注时钟输入端衰减器并按下Delete键移除这一连接。这样我们就可以将新的clk90_bufg时钟连接到这儿,从而完成整个补丁。要连接BUFG (clk90_bufg)的输出,按住Ctrl键不放,在窗口Array2中标注BUFG的输出端衰减器并在Array1窗口中选择IOB的时钟输入。松开Ctrl键,点击鼠标右键显示选项菜单并选择Add。这样就最终完成了BUFG输出和IOB之间的连接,而IOB则用来驱动下游ASIC的新建接口,利用interface_clk90时钟就可以正确地捕获传输的数据。

      这样就完成了ASIC的补丁。现在重新运行设计规则(DRC)检查器,确保没有引入任何新的错误。在菜单条中点击Tools →DRC →Run。

      脚本完成并且没有错误的情况下,就可以回到菜单选择Tool →Script →End Recording。这将停止并关闭脚本记录过程,下次需要这一ASIC补丁时你还可以重新利用这一脚本。一个不错的方法是在文本编辑器中打开脚本文件,将所有GUI Post 和 Unpost命令去除。这些命令并不是必要的,而且留着它们还让脚本难于阅读。下面的文本就是我们ASCI补丁的脚本。 如前面所述,内容非常直接,易于读取。

       unselect -all
      setattr main edit-mode Read-Write
      add -s “BUFGCTRL_X0Y28” comp
      clk90_bufg ;
      setattr comp clk90_bufg type BUFG
      unselect -all
      select pin ‘BUFGCTRL_X0Y28.I0’
      select pin ‘DCM_ADV_X0Y11.CLK90’
      add
      post attr net $NET_0
      setattr net $NET_0 name
      DCM_clk90_out
      unselect -all
     select pin ‘OLOGIC_X0Y2.CLK’
     delete
     unselect -all
     select pin ‘ILOGIC_X0Y3.CLK’
     delete
     unselect -all
     select pin ‘ILOGIC_X0Y3.CLK’
     select pin ‘OLOGIC_X0Y2.CLK’
     select pin ‘BUFGCTRL_X0Y28.O’
     add
     post attr net $NET_1
     setattr net $NET_1 name
     clk90_bufg_out
     unselect -all
     drc
     save -w design “patch.ncd”
     “patch.pcf”
     exit
      end

     仔细看看脚本内容,看能否分辨出对应GUI中做的动作。
很重要的是,可以从GUI(在菜单条 Tool →Scripts →Playback下)中或命令行回放这一脚本。 要在编译脚本中加入补丁,只需要增加下面一条命令就可以了:

      fpga_edline yourdesign.ncd
      yourdesign.pcf -p yourscript.scr
      应当在布局布线(PAR)完成后再执行这一命令,即当NCD和PCF文件完成后。

      FPGA Editor真的是一项强大的用户工具,尽管并非每个人都希望或需要在设计过程中用到它。 但当需要一些特殊处理或需要在某些地方突破规则以使设计功能更强时,没有其它工具能够像FPGA Editor一样提供如此强大的能力。你的FAE能够向你展示其功能,展示FPGA Editor如何帮助你完成设计调试和验证,当然还包括对规则的突破。

关键字:FPGA  Editor  数字设计 引用地址:提升创造力的数字设计工具:FPGA Editor

上一篇:Altium为电子产品设计提供可编程器件选项
下一篇:赛灵思25周年论行业短长新款FPGA重拳出击

推荐阅读最新更新时间:2024-05-02 20:47

Altera与Intel进一步加强合作,开发多管芯器件
此次合作将在单一封装系统中优化集成14 nm Tri-Gate Stratix 10 FPGA和异构技术。 2014年3月27号,北京——Altera公司(Nasdaq: ALTR)与Intel公司今天宣布,采用Intel世界领先的封装和装配技术以及Altera前沿的可编程逻辑技术,双方合作开发多管芯器件。在此次合作中,Intel使用14 nm三栅极工艺制造Altera的Stratix® 10 FPGA和SoC,进一步加强了Altera与Intel的代工线关系。 Altera与Intel一起工作开发多管芯器件,在一个封装中高效的集成了单片14 nm Stratix 10 FPGA和SoC与其他先进组件,包括D
[嵌入式]
Altera与Intel进一步加强合作,开发多管芯器件
基于FPGA的红外遥控信号接收模块的设计
摘要: 文中分析了红外线遥控器系统的数据编码和传输机制,并用VerilogHDL语言设计了基于FPGA的红外接收模块硬件电路,在VCS和VirSim仿真工具中进行了仿真测试;用Xilinx ISE 10.1软件进行了综合、适配和FPGA器件下栽测试,结果表明该电路实现了数据接收和显示的目的,符合红外遥控数据传输协议。 关键词:红外通信协议;Verilog;FPGA 红外遥控技术已经在日常家用电器中得到了广泛应用,其使用方便、功耗低、抗干扰能力强的优点也越来越在智能仪器系统中受到重视。市场上的各种家电红外遥控系统技术成熟、成本低廉,但都是针对各自的遥控对象(彩电、冰箱、空调等),不能直接用于智能仪器。本文探讨了如何借鉴家
[嵌入式]
基于<font color='red'>FPGA</font>的红外遥控信号接收模块的设计
基于DSP与FPGA的全姿态指引仪图形显示系统设计
随着现代航空电子技术飞速发展以及飞机性能的提高,使得机载图形显示系统所显示的参数越来越多,同时也对画面显示质量从人机工效学的角度提出了很高的要求。要保证图形显示的连续性,显示系统必须以每秒50帧以上的频率实时刷新。传统的EADI图形处理方法是采用软件运算实现,速度较慢,占用大量的运算时间,从而使系统很难在规定的时间内完成区域填充、字符与直线旋转、反走样运算等较为耗时的运算。本文设计了基于DSP与FPGA的系统结构,采用了软硬件填充的图形处理方法,先由DSP软件完成图形轮廓生成,然后FPGA硬件图形处理器根据图形轮廓完成耗时的图形填充,使系统在实时性方面取得了很好的效果并使得系统运算资源得到了合理的分配与利用。 1 全姿态指引仪的
[嵌入式]
基于DSP与<font color='red'>FPGA</font>的全姿态指引仪图形显示系统设计
利用Spartan-3 FPGA实现高性能DSP功能
Spartan-3FPGA能以突破性的价位点实现嵌入式DSP功能。本文阐述了Spartan-3 FPGA针对DSP而优化的特性,并通过实现示例分析了它们在性能和成本上的优势。   所有低成本的FPGA都以颇具吸引力的价格提供基本的逻辑性能,并能满足广泛的多用途设计需求。然而,当考虑在FPGA构造中嵌入DSP功能时,必须选择高端FPGA以获得诸如嵌入式乘法器和分布式存储器等平台特性。   Spartan-3 FPGA的面世改变了嵌入式DSP的应用前景。虽然Spartan-3系列器件的价位可能较低,但它们同样具有DSP设计所需的平台特性。这些平台特性能够以较高的面积利用率实现信号处理功能,使设计达到更低价位点。   Spart
[嵌入式]
利用Spartan-3 <font color='red'>FPGA</font>实现高性能DSP功能
基于FPGA的直接数字频率合成技术设计
  直接数字频率合成(DirectDigital FraquencySyn-thesis即DDFS,一般简称DDS)是从相位概念出发直接合成所需波形的一种新的频率合成技术。它在相对带宽、频率转换时间、相位连续性、正交输出、高分辨率以及集成化等一系列性能指标方面已远远超过了传统频率合成技术。当累加器的N很大时,最低输出频率可达Hz、mHz甚至μHz。也就是说:DDS的最低合成频率接近于零频。如果fc为50MHz, 那么当N为48位时,其分辨率可达179nHz。转换时间最快可达10ns的量级,这都是传统频率合成所不能比拟的。但它的不足之处是最高工作频率会受限、噪声和杂波不够理想。   本设计采用ALTERA公司的FPGA芯片EP
[嵌入式]
基于<font color='red'>FPGA</font>的直接数字频率合成技术设计
一种基于FPGA+DSP的通用飞控计算机平台设计
  飞控计算机是现代导弹制导与控制系统的核心装置,其性能的好坏直接关系到精确制导的精度和杀伤目标的概率。近年来舵机、导引头、惯导等弹载设备日益向着数字化方向发展,因此设计一种能兼容多数字式设备的通用飞控计算机平台尤为重要。传统的单处理器核心飞控计算机难以在多通道异步数据收发的同时保证数据处理速度,难以满足现代导弹的要求。本文提出了一种基于DSP+FPGA结构,对外接口为422的通用数字飞控计算机平台。此平台能充分发挥DSP的运算速度,实现飞控算法。采用基于FPGA的双RAM缓冲机制,能很好地解决异步串行数据实时同步数据处理问题,满足飞控系统需求。   1 设计思想和工作原理   1.1 设计思想   对于单DSP核心的飞控计算机,
[嵌入式]
一种基于<font color='red'>FPGA</font>+DSP的通用飞控计算机平台设计
基于ARM内核SoC的FPGA 验证环境设计方法
     摘 要:针对片上系统(SoC) 开发周期较长和现场可编程门阵列(FPGA) 可重用的特点,设计了基于ARM7TDMI 处理器核的SoC 的FPGA 验证平台,介绍了怎样利用该平台进行软硬件协同设计、IP核验证、底层硬件驱动和实时操作系统设计验证。使用该平台通过软硬件协同设计,能够加快SoC 系统的开发。整个系统原理清晰,结构简单,扩展灵活、方便。   关键词:SoC;FPGA;软硬件协同设计;验证平台;ARM7TDMI    引 言   随着片上系统(SoC) 设计的复杂度和性能要求的不断提高, 软硬件协同设计(Hardware/ Software Co2de2sign) 贯穿于SoC 设计的始终。软硬件协同设计
[单片机]
基于ARM内核SoC的<font color='red'>FPGA</font> 验证环境设计方法
FPGA构成液晶显示控制器
    摘要: 在DSP和FPGA为核心的无线扩频通信平台上增加液晶显示和触摸屏控制,从而能实现文字和图形信息的编辑和无线传送。用FPGA构造逻辑作为液晶显示控制器,不需要额外硬件资源。该产品集成化后体积小、便于携带、用途广泛。     关键词: 液晶显示  无线通信  FPGA  DSP     由DSP(数字信号处理)芯片和FPGA(现场可编程逻辑门阵列)为核心组成的无线数字扩频通信平台是无线扩频通信的一个开放式平台,能用于无线接入、无线图象和音频传送、移动INTERNET、精确区域定位LPS、智能遥控探测等高科技领域。在此基础上增加液晶显示和触摸屏控制,从而能实现文字和图形信息的编辑和无线传送。
[应用]
小广播
热门活动
换一批
更多
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved