FPGA editor 使用简介1

FPGA Editor,相信和Xilinx FPGA打过交道的人大都听说过,但用过的人就不是很多。我可以负责任的说,你一旦用过FPGA Editor,就会爱不释手,不能自已。
我毛华望QQ849886241。技术博客http://blog.csdn.net/my_share  
好像很多的图都看不到了。网址一个。http://blog.sina.com.cn/s/articlelist_1836601230_0_1.html 这里有一些内容。
一、FPGA Editor是个啥
FPGA Editor是Xilinx提供的一个强大的FPGA后端工具,能够查看P&R(Place and Route)之后的网表,并对其进行修改。请看如下几个场景:
  • 一个巨大的设计,把Reset的极性搞反了。改RTL重新编译?时间就是这么浪费的,用Fpga Editor吧,几分钟搞定。
  • IO本应该上拉的,结果忘了。LVDS没有外部跨接电阻,但忘了加DIFF_TERM。加约束重新P&R?还是用Fpga Editor吧。
  • 有一些简单逻辑搞错了,想要将if(a==2'b10)改成if(a>=2'b10),这也是可以用Fgpa Editor来完成的。
  • 把内部变量引向引脚,修改chipscope,用FPGA Editor快捷很多。
  • 调节IDELAY的延时,PLL的相位,FPGA Editor。
  • 手动调整布局布线,这个FPGA Editor可以做,但很多时候很难做。。。
节省时间,提高效率是FPGA Editor带来的最大便利,但有一点要格外小心,用FPGA Editor修改后的网表有可能和会和RTL不对应,调试成功之后记得做好善后工作。

二、启动FPGA Editor
FPGA Editor可以从ISE里面启动,也可以单独启动。ISE里面启动的位置见下图:
强大的工具——FPGA <wbr>Editor(一)
起来之后选择File->Main Properties,检查一些Edit Mode,默认情况下是不允许更改网表的。改成Read Write就可以为所欲为了。
强大的工具——FPGA <wbr>Editor(一)

三、界面布局
强大的工具——FPGA <wbr>Editor(一)
界面上大概是这么几块:
  • 图标栏:关于显示的常用操作
  • 命令栏:位于最右侧,关于FPGA的常用操作
  • Array栏:布满了各种资源
  • List栏:同样是各种资源,通常用来检索用
  • Wrold栏:在整个FPGA中的位置
  • Console:打印信息
  • 命令行:最下面还有一个命令行,可以输入各种指令
    有时不小心会把某些控制信号的极性搞错了,比如复位啊、片选啊、使能啊一类的。这种错误令人恼火,其实FPGA Editor可以轻松应对。
    第一步,启动FPGA Editor,并将工作模式更改为可读写。
    第二步:在List栏里搜索需要更改极性的信号,rstn。
    FPGA <wbr>Editor(二)——修改输入信号极性
    第三步,选中rstn对应的IOB。在list栏中选中rstn,然后通过zoom select按钮将IOB放大。
    FPGA <wbr>Editor(二)——修改输入信号极性

    FPGA <wbr>Editor(二)——修改输入信号极性
    第四步,双击rstn所在的IOB,打开IOB的结构。
    FPGA <wbr>Editor(二)——修改输入信号极性
    看红色方块里的部分,输入部分被分为两路:一路直通,一路反向。通过前面的选择器接入FPGA的内部逻辑。这个图中是选中了反向的一路,只要更改为直通那路,也就完成了引脚极性的修改。
    第五步,点击begin editing按钮进行编辑模式。
    FPGA <wbr>Editor(二)——修改输入信号极性
    进入编辑模式后,背景变成黑色。
    第六步,单击选择器靠上的那个小三角,选择直通的一路。
    FPGA <wbr>Editor(二)——修改输入信号极性
    第七步,单击apply按钮完成修改。保存,关闭IOB编辑窗口。
    FPGA <wbr>Editor(二)——修改输入信号极性
    第八步,Tools->Run Bitgen生成bit文件,搞定。可以将新的bit文件下到板子里去试试,看有什么变化:)
  • 经过漫长等待,终于编译完了,结果时序不满足。脾气再好,恐怕也有点上火。这时候,可能你想要降低些频率来迎合setup time,也可能想调整一点相位来迎合offset in。无论如何,先让时序过关跑一下。这个场合又是FPGA Editor出场的时刻了。
    还是先在list栏找到PLL,选中并打开。
    FPGA <wbr>Editor(三)——修改PLL的属性

    FPGA <wbr>Editor(三)——修改PLL的属性

    PLL窗口的上半部分是PLL_ADV的IO,下边有部分属性,我们首先修改一下输出的时钟频率。影响输出频率的有三个因素:CLKFBOUT_MULT,DIVCLK_DIVIDE,以及CLKOUT对应的DIVIDE。输出频率=输入频率*CLKFBOUT_MULT/DIVCLK_DIVIDE/CLKOUT对应的DIVIDE。仔细看过下面的属性,除了DIVCLK_DIVIDE之外,并没有发现其他两个。

    FPGA <wbr>Editor(三)——修改PLL的属性

    其实,更多属性都在另外一个窗口中,单击按钮栏中的“F=”按钮。
    FPGA <wbr>Editor(三)——修改PLL的属性

    FPGA <wbr>Editor(三)——修改PLL的属性

    这下所有属性都找到了,按照需要自己修改,然后apply,然后保存,然后bitgen重新生成bit文件就可以了。
    如果要修改相位也很简单,只要修改CLKOUTn_PHASE属性就可以了。

    FPGA <wbr>Editor(三)——修改PLL的属性
    LUT是FPGA中实现逻辑的部件,由于采用了SRAM结构,因此一个LUT可以实现多种逻辑,实现的逻辑也可以通过FPGA Editor修改。
    对于如下一段语句:
    wire [3:0] din;
    reg dout;
    always @(posedge clk)
     dout<=&din;
    这段语句实现的是一个4输入与门,我们要将他改写成一个4输入的或门。
    打开FPGA Editor,首先找到dout这个寄存器。组合逻辑经常被优化,名字也是千变万化,因此从寄存器入手找到信号不失为明智的选择。
    FPGA <wbr>Editor(四)——修改LUT的功能
    在找到dout这个寄存器之后,选中输入的线,就可以顺藤摸瓜,找到对应的Slice。上图中红线的右端是OLOGIC,左端是实现AND功能的LUT所在的Slice。双击进入该Slice,并打开属性窗口。
    FPGA <wbr>Editor(四)——修改LUT的功能
    在Virtex5中每个Slice包含有4个LUT(分别编号为A,B,C,D),这里只用了编号为D的LUT的一个输出(D6LUT)。在属性窗口中,可以看到D6LUT后面描述的是(A1*(A5*(A3*A4))),这里的*表示逻辑与,A1,A3,A4,A5表示的是6输入LUT中的4个输入,因此描述了一个4输入与门的逻辑。
    如果想修改为4输入或门,只需要将D6LUT的值改为(A1+(A5+(A3+A4)))。
    描述LUT的功能支持以下几个运算符:
    • *:与
    • +:或
    • @:异或
    • ~:非
    FPGA Editor除了可以更改各个单元的属性之外,也可以进行Place、Route、增加单元、删除单元等工作。这样就可以对后端网表做出更多的修改。
    一、移动单元
    有些情况下我们想要微调一下某些单元的位置,比如引脚分配错了、改善时序等等。这些工作可以通过三个步骤来完成:
      1.Unplace想要移动的单元。在选中的单元上右键,选择unplace。
    FPGA <wbr>Editor(五)——稍为复杂的调整

      2.将单元place到新位置。在list栏中找到需要place的单元,在array栏中找到想要place的位置,将list栏内的单元拖拽到array中的正确位置。
    FPGA <wbr>Editor(五)——稍为复杂的调整

      3.进行route。
    FPGA <wbr>Editor(五)——稍为复杂的调整
    上图中那条鲜艳的绿线表示没有进行route,选中它,点击右侧按钮栏的autoroute,之后就大功告成了。

    二、添加/删除单元
    删除单元非常简单,选中要删除的单元,单击右侧按钮中的delete就可以了。
    添加单元的方法是选中空的位置,单击右侧按钮中的add,之后给单元起个名字就可以了。
    在调试阶段,将一些内部变量引到IO上,或者使用chipscope观察都是常见的手段。但是每次更改查看的变量都需要重新P&R会浪费掉大量的时间,而且每次P&R的结果可能会不一致,导致观察的结果出现偏差。一个简单的修改方法是通过FPGA Editor。
    一、Probe
    Probe的作用是将内部变量引到IO上,供外部测量仪器使用。
    单击右侧按钮中的Probe打开窗口:
    FPGA <wbr>Editor(六)——Probe和ILA
    单击右上方的Add:
    FPGA <wbr>Editor(六)——Probe和ILA
    通过上边的Filter找到想要观察的信号,通过左下角的Filter找到IO的位置,连起来,搞定。

    二、ILA
    ILA是Chipscope中观察信号的模块,在FPGA Editor中可以方便的更改其连接的信号。单击右侧按钮中的ila。
    FPGA <wbr>Editor(六)——Probe和ILA
    change net改变连线就OK了。

猜你喜欢

转载自blog.csdn.net/my_share/article/details/47679615