我在使用 Lattice ICE5LP4K 的内部振荡器时遇到问题。根据 iCE40 振荡器使用指南附录,verilog 中的代码应如下所示:
\n\n SB_HFOSC OSCInst0 (\n .CLKHF_EN(ENCLKHF),\n .CLKHF_PU(CLKHF_POWERUP),\n .CLKHF(CLKHF)\n ) /* synthesis ROUTE_THROUGH_FABRIC= [0|1] */;\n Defparam OSCInst0.CLKHF_DIV = 2\xe2\x80\x99b00;\nRun Code Online (Sandbox Code Playgroud)\n\n我正在使用的代码库采用 VHDL 格式,因此我已将该组件添加到我的架构中,如下所示:
\n\n SB_HFOSC : OscInst0\n port map(\n CLKHF_EN => RST_SYS_N;\n CLKHF_PU => RST_SYS_N;\n CLKHF => HFOSC_CLK_48MHZ\n );\nRun Code Online (Sandbox Code Playgroud)\n\n当我尝试此操作时,收到与组件 SB_HFOSC 未定义相关的错误。然后我找到了这篇文章:lattice FPGA内部振荡器模拟问题,其中提到将lattice组件添加到项目文件中。
\n\n我在项目中添加了一个新文件,其中包含 sb_ice_syn_vital.vhd 中的以下代码:
\n\n-----------------------------------------------------\n--- SB_HFOSC -------\n------------------------------------------------\nlibrary IEEE;\nuse ieee.std_logic_1164.all;\nuse ieee.std_logic_arith.all;\nuse ieee.std_logic_unsigned.all;\nuse IEEE.Vital_Primitives.all;\nuse IEEE.VITAL_Timing.all;\nentity SB_HFOSC is \n generic( CLKHF_DIV: string:="0b00";\n Xon : boolean := true;\n MsgOn : boolean := …Run Code Online (Sandbox Code Playgroud)