Verilog代碼和FPGA硬件的映射關係(五)

  既然咱們能夠指定寄存器放在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_in8所示,根據序號順序,在①處的「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

相關文章
相關標籤/搜索