【问题标题】:iCE40 Ultra Plus 5k -- how to set PLL (without propietary GUI tools)iCE40 Ultra Plus 5k -- 如何设置 PLL(无需专有 GUI 工具)
【发布时间】:2021-05-19 19:29:27
【问题描述】:

有没有什么方法可以配置 iCE40 Ultra Plus 5k PLL,而不使用像 Lattice Icecube2 / Radiant 软件这样的花哨的专有工具。

官方 PLL 编程指南 (source) 仅显示如何使用提到的专有 GUI 工具(第 4 章)

【问题讨论】:

    标签: vhdl fpga ice40


    【解决方案1】:

    这些工具可以简单地生成所需的文件。最后看起来是这样的:

    module main_pll(REFERENCECLK,
                PLLOUTCORE,
                PLLOUTGLOBAL,
                RESET);
    
    input REFERENCECLK;
    input RESET;    /* To initialize the simulation properly, the RESET signal (Active Low) must be asserted at the beginning of the simulation */ 
    output PLLOUTCORE;
    output PLLOUTGLOBAL;
    
    SB_PLL40_CORE main_pll_inst(.REFERENCECLK(REFERENCECLK),
                                .PLLOUTCORE(PLLOUTCORE),
                                .PLLOUTGLOBAL(PLLOUTGLOBAL),
                                .EXTFEEDBACK(),
                                .DYNAMICDELAY(),
                                .RESETB(RESET),
                                .BYPASS(1'b0),
                                .LATCHINPUTVALUE(),
                                .LOCK(),
                                .SDI(),
                                .SDO(),
                                .SCLK());
    
    //\\ Fin=13.56, Fout=40.68;
    defparam main_pll_inst.DIVR = 4'b0000;
    defparam main_pll_inst.DIVF = 7'b0101111;
    defparam main_pll_inst.DIVQ = 3'b100;
    defparam main_pll_inst.FILTER_RANGE = 3'b001;
    defparam main_pll_inst.FEEDBACK_PATH = "SIMPLE";
    defparam main_pll_inst.DELAY_ADJUSTMENT_MODE_FEEDBACK = "FIXED";
    defparam main_pll_inst.FDA_FEEDBACK = 4'b0000;
    defparam main_pll_inst.DELAY_ADJUSTMENT_MODE_RELATIVE = "FIXED";
    defparam main_pll_inst.FDA_RELATIVE = 4'b0000;
    defparam main_pll_inst.SHIFTREG_DIV_MODE = 2'b00;
    defparam main_pll_inst.PLLOUT_SELECT = "GENCLK";
    defparam main_pll_inst.ENABLE_ICEGATE = 1'b0;
    
    endmodule
    

    但是,建议使用工具正确设置所有参数。有什么理由反对使用免费提供的工具来生成文件,然后再使用它?

    【讨论】:

    • 宏例如REFERENCECLK 被开源icestorm 工具识别?
    • 我在那里没有看到宏。 REFERENCECLK 是常规输入线。
    • 好的...但是当我在verilog文件中写REFERENCECLK时。开源工具链(yosysarachne-pnricestorm)如何处理它以便最终正确连接?正确连接是指工具链如何将其连接到 internal PLL。我知道对于 external 引脚,我可以简单地编写一个物理约束文件...... internal 连接呢?
    • 在这个文件中发生的事情基本上是将电线从模块定义“传递”到名为 main_pll_inst 的 SB_PLL40_CORE 类型的“技术定义”模块。最后,它只是另一个像黑盒一样的模块,由嵌入式库提供。该模块需要正确设置几个参数才能正常运行。提供这些设置是此文件的主要目的。最后它只不过是一个“包装器”。
    • 参见icepll: option to save PLL config to VHDL entity (when using -m) #265 添加了第 382 行到第 443 行。声明了一个 SB_PLL40_CORE 组件,并使用通用常量默认值在细化过程中将参数传递给实例化的库原语。
    猜你喜欢
    • 1970-01-01
    • 2019-10-17
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 2015-10-03
    • 2010-11-28
    相关资源
    最近更新 更多