Verilog代码和FPGA硬件的映射关系(五)

5 篇文章 0 订阅
4 篇文章 1 订阅

       既然我们可以指定寄存器放在IOB内,那我们同样也可以指定PLL的位置。首先要确保我们有多个PLL才行。如图1所示,我们所使用的EP4CE10F17C8芯片刚好有两个。
在这里插入图片描述

图1

       为了演示这个例子,我们使用pll工程,RTL代码如下所示:

//--------------------------------------------------
01 module	pll(
02 		input	wire	sys_clk			,	//系统时钟50MHz
03 		
04 		output	wire	clk_mul_2		,	//系统时钟经过2倍频后的时钟
05 		output	wire	clk_div_2		,	//系统时钟经过2分频后的时钟
06 		output	wire	clk_phase_90	,	//系统时钟经过相移90°后的时钟
07 		output	wire	clk_ducle_20	,	//系统时钟变为占空比为20%的时钟
08 		output	wire	locked				//检测锁相环是否已经锁定,只有该信号为高时输出的时钟才是稳定的
09 );
10 
11 //------------------------pll_ip_inst------------------------
12 pll_ip	pll_ip_inst(
13 		.inclk0 	(sys_clk 		),	//input	inclk0 
14 	                                        
15 		.c0	  		(clk_mul_2 		),  //output    c0 	
16 		.c1 	  	(clk_div_2 		),  //output    c1 	
17 		.c2 		(clk_phase_90 	),  //output    c2 	
18 		.c3 		(clk_ducle_20 	),  //output    c3 	
19 		.locked 	(locked 		)   //output    locked 
20 );
21 
22 endmodule
//--------------------------------------------------

       代码编写完后依然需要点击“Start Analysis & Synthesis”图标进行分析和综合。然后双击“Netlist Viewers”下的“RTL Viewer”查看RTL视图。
在这里插入图片描述

图2

       点击“Start Compilation”图标全编译进行布局布线,然后打开Chip Planner视图。Chip Planner打开后的界面如图3所示,我们可以看到在版图模型中左下角有一块颜色变深的区域,与之形成鲜明对比的是右上角颜色没有变深的位置,这就是我们FPGA芯片中两个PLL的位置,而颜色变深的区域说明资源被占用。
在这里插入图片描述

图3

       放大并点击该PLL,如图4所示,可以在右侧看到该PLL的结构图中显示的部分蓝色高亮信号,下面“Location”则显示了该PLL的名字为“PLL_1”。
在这里插入图片描述

图4

       如图5所示,选中该PLL后点击左侧的图标显示扇入扇出线路径,可以看到PLL在芯片内的连接关系。
在这里插入图片描述

图5

       如图6所示,我们回到工程界面点击“Assignment Editor”图标来约束PLL的位置。
在这里插入图片描述

图6

       如图7所示,在打开的“Assignment Editor”界面中点击“To”下面的“<>”添加要约束的项。
在这里插入图片描述

图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
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值