zoukankan      html  css  js  c++  java
  • Lattice Diamond

    http://blog.sina.com.cn/s/blog_49a879e40101fahm.html

    刚开始接触到diamond,感觉界面与ISE和Quartus还都差不多吧,记下一些以防不常用而忘记。

    1.Tools->spread sheet view进行时序约束、物理约束。

    2.diamond有一个自动生成的时序约束文件,.prf文件,这个是在两个前提下可以自动生成,第一个就是在project->active strategy,在map trace settings选项里有一个auto timing,这个要是true才可以,第二个就是你不能手动的设置任何一点timing preferences,这样的话直接运行map trace,打开prf文件就能看到自动生成的约束,它是约束了时钟网络所能跑到的最大的频率,你可以用这个文件来自己编辑lpf文件,这样的话你remap以后,rpf的文件也会被你重新编辑的lpf文件所覆盖了。

    3.lattice的pll可以进行分频和倍频,而dll只可以进行分频。

    4.生成IP核的时候注意选import IPX to diamond project,否则的话还得手动加。双击.ipx文件进行已存在IP核的编辑。

    5.tools下有reveal inserter和reveal analyzer,分别用来建立文件和抓波形。

      文件建好以后,保存为.rvl文件,然后debug->insert debug,就将rvl文件加入到工程中去。在工程栏里debug files下可以看到。

    6.看ECP3的datasheet,时钟包括PLL、DLL和CLKDIV,PLL是通过PFD(phase frequency detect)检测reference clk和feedback clk的频率和相位,然后产生控制vco的信号,来产生新的时钟;DLL呢是通过phase detect以后,经ALU计算出一个数来控制delay chain,从而得到新的时钟信号,所以呢可以说PLL是模拟的,DLL是数字的。从DLL的生成原理来看,它不适合频率太低的应用,因为delay chain是有限的。

    7.lattice有primary clock,secondary clock和edge clock三种时钟资源,按器件不同有不同数目的secondary clock region,比方说-17有16个。

    8.修改已存在的IP,直接打开ipx文件即可。但是记得例化ip核以后打勾insert ipx to project,这样往后修改ipx之后工程才会自动更新。

    9.好想rvl的采样频率低了以后会提示出错,还不知道怎么回事。

    10.有一个fpga里进行时钟切换的问题,xilinx里好像有核来做,lattice里没找到直接切换的,我用了一个动态的PLL,它有4bit的输入用来定义相移,然后在逻辑里就可以通过改变这个输入来进行时钟的切换,实践证明效果还不错。

    11.找到ddr3_controller user guide的方法,在官网上直接搜索ddr3 controller,点开DDR3 SDRAM CONTROLLER进去,在documentation->user manuall下可以看到。

    12.对于位宽大于1的IO,lattice的管脚约束是用下滑杠,而不是[],不知道害死人呀!!

  • 相关阅读:
    leetcode 673. 最长递增子序列的个数 java
    leetcode 148. 排序链表 java
    leetcode 98. 验证二叉搜索树 java
    leetcode 29. 两数相除 java
    leetcode 234. 回文链表 java
    Valid Palindrome LeetCode Java
    Single Number II LeetCode Java
    Single Number LeetCode java
    Search in Rotated Sorted Array II LeetCode Java
    Search in Rotated Sorted Array leetcode java
  • 原文地址:https://www.cnblogs.com/agllero/p/4833290.html
Copyright © 2011-2022 走看看