zoukankan      html  css  js  c++  java
  • [转帖]活用Quartus II内置模板,快速输入HDL代码、TimeQuset束缚及tcl语句等

    在看Dolby公司的工程师编写的VHDL代码时,发现他们将工程及其子模块全部放在同一个文件中,刚开始看得我头晕晕的,后来发现可以通过顶层实体进行查看其RTL视图,从而理清各个模块间的关系。方法如下:Project Navigator-->Hierarchy-->Entity-->在顶层文件上右击-->Locate-->Locate in RTL'Viewer。就可以打开RTL视图了。太牛了。此外SDC约束文件可以加载多个。

    LVDS的TX和RX数据和时钟引脚都必须进行约束,且RX数据和时钟引脚还得加上差分约束,具体如下所示:

    此外更重要的一点是输入时钟尤其是差分时钟的输入最好通过一个clk_buf缓冲输出(Altera中的模块是ALTCLKCTRL),这样才能正确显示,且LVDS_RX的8组输入时钟经过BUF处理后不会出现PLL上的错误。

    # | module altera_lvds_rx_1
    set_instance_assignment -name IO_STANDARD LVDS -to LVDS_RX1_p[0]
    set_location_assignment PIN_D6 -to LVDS_RX1_p[0]

    # | module altera_lvds_tx_1
    set_instance_assignment -name IO_STANDARD LVDS -to LVDS_TX1_p[0]
    set_location_assignment PIN_A2 -to LVDS_TX1_p[0]

    # +-----------------------------------
    set_instance_assignment -name INPUT_TERMINATION DIFFERENTIAL -to LVDS_RX*
    set_instance_assignment -name INPUT_TERMINATION DIFFERENTIAL -to LVDS_CLKIN*

    来源:http://wenku.baidu.com/view/f4b507563c1ec5da50e270ba.html

    http://www.doc88.com/p-675124532917.html

    SDC约束文件的编写,在TimeQuest Timing Analyzer中可以看到需要约束的时钟数目。

    TimeQuest Timing Analyzer-->Reports-->Diagnostic-->Report Clocks

    ##############################################################################
    ####
    #Generated by: zlh840 
    #Purpose     : To verify gate-clock conversion using quartus 12.0
    #Project      : RX2TX_5CH
    #Revision    : None
    #
    #Date        :11/26/2012   M/D/Y
    #
    ##############################################################################
    ####Time Information
    set_time_format -unit ns -decimal_places 3

    #Create_clock for system and its duty cycle is 5:5
    create_clock -name {altera_reserved_av_osc_clk} -period 22.500 -waveform { 0.000 11.250 } [get_pins {*|arriav_oscillator|clkout}]
    create_clock -name {altera_reserved_tck} -period 100.000 -waveform { 0.000 50.000 } [get_ports {altera_reserved_tck}]
    create_clock -name {CLK27A_IN} -period 37.037 -waveform { 0.000 18.519 } [get_ports {CLK27A_IN}]

    #Create_clock for LVDS1_RX_CLK but its duty cycle is 4:3
    create_clock -name LVDS_RX_CLK_1 -period 12.5 -waveform {0 7.143} [get_ports {LVDS_CLKIN1_p}]
    create_clock -name LVDS_RX_CLK_5 -period 12.5 -waveform {0 7.143} [get_ports {LVDS_CLKIN5_p}]

    derive_pll_clocks

    create_clock -name virtual_clock_lvds -period 12.500 -waveform {0 7.143}

    set_input_delay -clock [get_clocks virtual_clock_lvds]  -max 0.200  [get_ports LVDS_RX1_p*] -add_delay
    set_input_delay -clock [get_clocks virtual_clock_lvds]  -min -0.200 [get_ports LVDS_RX1_p*] -add_delay
    set_input_delay -clock [get_clocks virtual_clock_lvds]  -max 0.200  [get_ports LVDS_RX2_p*] -add_delay
    set_input_delay -clock [get_clocks virtual_clock_lvds]  -min -0.200 [get_ports LVDS_RX2_p*] -add_delay
    set_input_delay -clock [get_clocks virtual_clock_lvds]  -max 0.200  [get_ports LVDS_RX3_p*] -add_delay
    set_input_delay -clock [get_clocks virtual_clock_lvds]  -min -0.200 [get_ports LVDS_RX3_p*] -add_delay
    set_input_delay -clock [get_clocks virtual_clock_lvds]  -max 0.200  [get_ports LVDS_RX4_p*] -add_delay
    set_input_delay -clock [get_clocks virtual_clock_lvds]  -min -0.200 [get_ports LVDS_RX4_p*] -add_delay

    来源:http://www.cnpetweb.com/a/xinxizhongxin/lanmu9/2011/1125/27182.html

    来源:http://bbs.ednchina.com/BLOG_ARTICLE_1909737.HTM

    在Quartus II的菜单里找到了一个好去处:language template。

       在Edit -> Insert Template下可以看到Verilog HDL、SystemVerilog、VHDL、AHDL、Quartus II TCL、TCL的语言模板。
       在Verilog HDL下面,可以找到基本的逻辑操作符、基本语言结构,甚至是完整的设计。

        其中的基本语言结构和操作符可用来在编程时参考,而完整的设计作为自学语言的实例是再好不过了。这些完整的设计不仅仅是语法上结构完整,其书写格式、参数化、注释都很标准,从中可以学到许多优秀的编码风格和特殊功能的描述方法。

    比如,双端口RAM的描述中就有关于读写同时操作时,读取返回的值是新值还是旧值的区别,采用阻塞和非阻塞赋值就可以在综合后的代码中得到这样的差别。

       同样,在其他EDA工具中也有类似的语言模板,都可以作为我们提高编码水平的助手。

  • 相关阅读:
    The Elements of C# Style Design
    The Elements of C# Style Programming
    The Elements of C# Style General Principles
    浅谈CLR
    堆排序
    WPF系列:GridView列绑定控件(一)
    分发服务器迁移(distribute service migration‏)
    通过编码规范来学习一门编程语言
    如何维护数据库中的静态表
    关于短地址服务的一些看法
  • 原文地址:https://www.cnblogs.com/zlh840/p/2757633.html
Copyright © 2011-2022 走看看