You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iceFUN板ICE40HX8K的PLL配置、VHDL实例化及综合流程咨询

解答:ICE40HX8K PLL在VHDL设计中的实例化与综合流程整合

一、VHDL设计中正确实例化ICE40HX8K PLL

你生成的Verilog PLL模块端口为clock_in(输入时钟)、clock_out(输出50MHz时钟)、locked(锁定信号),需修正构思的实例化代码,同时添加必要信号并处理PLL锁定状态以避免逻辑异常:

  1. 修改top.vhd架构部分,添加内部信号
architecture rtl of top is
    signal blink : std_logic := '1';
    -- 添加PLL相关信号
    signal fast_clk : std_logic;
    signal pll_locked : std_logic;
begin
  1. 正确实例化PLL模块(端口名需与Verilog模块完全匹配)
-- PLL实例化
    pll_instance : entity work.pll
        port map(
            clock_in  => clk,       -- 外部12MHz时钟输入
            clock_out => fast_clk,  -- PLL输出的50MHz时钟
            locked    => pll_locked -- PLL锁定信号
        );
  1. 修改计数器逻辑,加入PLL锁定判断
    避免PLL未锁定时计数器乱跳,在时钟上升沿逻辑中加入锁定状态判断:
process (fast_clk)
        variable counter : unsigned (23 downto 0) := x"000000";
    begin
        if rising_edge(fast_clk) then
            -- PLL未锁定时重置计数器与闪烁信号
            if pll_locked = '0' then
                counter := x"000000";
                blink <= '1';
            else
                if counter = 11_999_999 then
                    counter := x"000000";
                    blink <= not blink;
                else
                    counter := counter + 1;
                end if;
            end if;
        end if;
    end process;

二、将Verilog PLL模块加入现有综合流程

Yosys支持混合VHDL与Verilog设计的综合,只需修改原有Yosys命令,同时加载两种语言的设计文件:

  1. 保存PLL代码
    将生成的Verilog PLL代码保存为pll.v,放在与top.vhd同一目录下。

  2. 修改Yosys综合命令
    先通过ghdl处理VHDL文件,再用read_verilog加载Verilog模块,最后统一综合:

yosys -m ghdl -p '
    ghdl --std=08 top.vhd -e top;
    read_verilog pll.v;
    synth_ice40 -json top.json
'
  1. 后续流程保持不变
    nextpnr-ice40与icepack命令无需修改,沿用原有配置即可:
nextpnr-ice40 -r --hx8k --json top.json --package cb132 --asc top.asc --opt-timing --pcf iceFUN.pcf --report bin/usage.report.json
icepack top.asc top.bin

关键注意事项

  • 确保Verilog模块名(pll)与VHDL实例化时的entity work.pll完全一致,Yosys会自动合并不同语言的模块到同一设计库。
  • 必须处理PLL的locked信号,否则FPGA上电初期PLL未锁定时,逻辑会出现异常行为。
  • 你生成的PLL实际输出频率为50.25MHz,LED实际闪烁频率会略高于预期的4.166Hz(约4.1875Hz),属于正常误差。

内容的提问来源于stack exchange,提问作者Maximilian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 04:02:01