【发布时间】:2021-05-19 19:29:27
【问题描述】:
有没有什么方法可以配置 iCE40 Ultra Plus 5k PLL,而不使用像 Lattice Icecube2 / Radiant 软件这样的花哨的专有工具。
官方 PLL 编程指南 (source) 仅显示如何使用提到的专有 GUI 工具(第 4 章)
【问题讨论】:
有没有什么方法可以配置 iCE40 Ultra Plus 5k PLL,而不使用像 Lattice Icecube2 / Radiant 软件这样的花哨的专有工具。
官方 PLL 编程指南 (source) 仅显示如何使用提到的专有 GUI 工具(第 4 章)
【问题讨论】:
这些工具可以简单地生成所需的文件。最后看起来是这样的:
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时。开源工具链(yosys、arachne-pnr、icestorm)如何处理它以便最终正确连接?正确连接是指工具链如何将其连接到 internal PLL。我知道对于 external 引脚,我可以简单地编写一个物理约束文件...... internal 连接呢?