既然咱们能够指定寄存器放在IOB内,那咱们一样也能够指定PLL的位置。首先要确保咱们有多个PLL才行。如图1所示,咱们所使用的EP4CE10F17C8芯片恰好有两个。布局
图 1学习
为了演示这个例子,咱们使用pll工程,RTL代码以下所示:spa
1 //-------------------------------------------------- 2 module pll( 3 input wire sys_clk , //系统时钟50MHz 4 5 output wire clk_mul_2 , //系统时钟通过2倍频后的时钟 6 output wire clk_div_2 , //系统时钟通过2分频后的时钟 7 output wire clk_phase_90 , //系统时钟通过相移90°后的时钟 8 output wire clk_ducle_20 , //系统时钟变为占空比为20%的时钟 9 output wire locked //检测锁相环是否已经锁定,只有该信号为高时输出的时钟才是稳定的 10 11 ); 12 13 //------------------------pll_ip_inst------------------------ 14 pll_ip pll_ip_inst( 15 .inclk0 (sys_clk ), //input inclk0 16 17 .c0 (clk_mul_2 ), //output c0 18 .c1 (clk_div_2 ), //output c1 19 .c2 (clk_phase_90 ), //output c2 20 .c3 (clk_ducle_20 ), //output c3 21 .locked (locked ) //output locked 22 ); 23 24 endmodule 25 //-------------------------------------------------
代码编写完后依然须要点击“Start Analysis & Synthesis”图标进行分析和综合。而后双击“Netlist Viewers”下的“RTL Viewer”查看RTL视图。3d
图 2code
点击“Start Compilation”图标全编译进行布局布线,而后打开Chip Planner视图。Chip Planner打开后的界面如图3所示,咱们能够看到在版图模型中左下角有一块颜色变深的区域,与之造成鲜明对比的是右上角颜色没有变深的位置,这就是咱们FPGA芯片中两个PLL的位置,而颜色变深的区域说明资源被占用。component
图 3blog
放大并点击该PLL,如图4所示,能够在右侧看到该PLL的结构图中显示的部分蓝色高亮信号,下面“Location”则显示了该PLL的名字为“PLL_1”。ip
图 4资源
如图5所示,选中该PLL后点击左侧的图标显示扇入扇出线路径,能够看到PLL在芯片内的链接关系。input
图 5
如图6所示,咱们回到工程界面点击“Assignment Editor”图标来约束PLL的位置。
图 6
如图7所示,在打开的“Assignment Editor”界面中点击“To”下面的“<<new>>”添加要约束的项。
图 7
在打开的“Node Finder”界面中咱们找到信号的输入key_in,如图8所示,根据序号顺序,在①处的“Named :”选项框中输入“*pll*”,点击 ②处的“List”,在③处的“Node Found :”列表中就会列出名为altpll:altpll_component的信号,双击③处的altpll:altpll_component 信号或点击图标④,altpll:altpll_component信号就被添加到⑤处的“Selected Nodes:”中了。若是咱们想取消⑤处选择的信号则在“Selected Nodes:”选中该信号后点击图标⑥便可。设置完毕后点击“OK”退出。
图 8
如图9所示,设置“Assignment Name”,下拉列表找到“Location(Accepts wildcards/groups)”,这是设置位置的约束。
图 9
如图10所示,点击“Value”下的“...”。
图 10
如图11所示,在弹出的“Location”对话框中的“Element:”选择“PLL”。能够看到在这里咱们还能够设置其余元素的位置。
图 11
如图12所示,“Location:”选择“PLL_2”。
图 12
如图13所示,“Location”对话框设置完毕后点击“OK”。
图 13
所有设置完成后的结果如图14所示。
图 14
点击“Start Compilation”图标全编译进行布局布线,不然没法从新映射资源。此时会弹出如所示的对话框,提示是否要保存更改,选择“Yes”后会执行布局布线。
图 15
当布局布线从新完成映射后咱们再来看看Chip Planner视图,如图16所示,咱们能够发如今版图模型的右上角一块颜色变深的区域,与左下颜色没有变深的位置造成鲜明的对比,颜色变深的区域说明资源被占用。
图 16
放大并点击该PLL,如图17所示,能够在右侧看到该PLL的结构图中显示的部分蓝色高亮信号,下面“Location”则显示了该PLL的名字为“PLL_2,说明已经成功映射上了。
图 17
如图18所示,选中该PLL后点击左侧的图标显示扇入扇出线路径,能够看到PLL在芯片内的链接关系。
图 18
修改PLL的映射位置意义何在呢?当咱们的时序在某些状况下很差的时候就能够经过修改PLL的映射位置来调整时序,以实现时序的收敛。
欢迎加入FPGA技术学习交流群,本群致力于为广大FPGAer提供良好的学习交流环境,不按期提供各类本行业相关资料!QQ交流群号:450843130