Ⅰ 利用vivado配置zynq時如何添加管腳約束
約束文件裡面可以設,另外雙擊PS裡面的IO也可以設置
Ⅱ 如何使用vivado isim模擬
使用vivado isim模擬的方法和過程如下:
1) 測試平台建立;
a) 在工程管理區點擊滑鼠右鍵,彈出菜單選擇New Source,彈出界面; b) 輸入文件名,選擇Verilog Test Fixture,打鉤add to project,單擊NEXT;
c) 選擇要模擬的文件,點擊NEXT;
d) 點擊「FINISH」,就生成一個Verilog測試模塊。
ISE能自動生成測試平台的完整構架,包括所需信號、埠聲明以及模塊調用的實現。所需要完成的工作就是initial….end模塊中的「//Add stimulus here」後面添加測試向量生成代碼。
這里給出示例測試代碼,將其添加於//Add stimulus here處
#100;
SW = 7;
#100;
SW = 11;
#100;
SW = 13;
#100;
SW = 14;
2) 測試平台建立後,在工程管理區將狀態設置為「Simulation」;選擇要模擬的文件名,
過程管理區就會顯示「Isim simlator」;
3) 下拉「Isim simlator」,選擇「Simulate Behavioral Model」,單擊滑鼠右鍵,現在「Process Properties」可修改模擬遠行時間等。
4) 修改後,直接雙擊「Isim simlator」中的「Simulate Behavioral Model」進行模擬。
檢查模擬結果是否達到預期設計目標。
Vivado設計套件,是FPGA廠商賽靈思公司2012年發布的集成設計環境。包括高度集成的設計環境和新一代從系統到IC級的工具,這些均建立在共享的可擴展數據模型和通用調試環境基礎上。集成的設計環境——Vivado設計套件包括高度集成的設計環境和新一代從系統到IC級的工具,這些均建立在共享的可擴展數據模型和通用調試環境基礎上。
Ⅲ FPGA JTAG檢測不到器件有什麼原因
1:JTAG是IEEE 1149.1邊界掃描協議的代稱,一般為4線介面,如圖中的10P介面,TCK.TMS.TDI,TDO是協議規定的必備引腳,還有一個可選引腳TRST。具體的標准請參考IEEEE 1149.1技術說明。
2:對於JTAG上拉電阻和下拉電阻,TCK之所以下拉,是為了時鍾第一個邊緣為posedge,同時TMS,TDI按照IEEE 1149.1標准接上拉,為了保證驅動能力還較好的數據沿,一般電阻選10K或者4.7K的較多。
3:電路原理圖上面為復位電路,對FPGA復位後,配置晶元的Bits流會通過JATG引腳被重新載入到片內的RAM中,對於Altera配置晶元一般是EPCS器件,對於Xilinx則是EPRAM器件(電路未給出)。至於怎麼連接的請看器件手冊。在此不作贅述。
4:類似於nSTATUS等引腳為Altera專用電氣引腳,非普通IO引腳。不必要理解他們的意思,只需要記住如果保證器件能正常運行,某些特殊引腳的接法就行了(接地,上拉,下拉,VCC,懸空),這些定義在器件手冊和技術文檔中你都能找得到。
綜上所述:你的電路包括了FPGA復位邏輯和JTAG配置電路。某些接法沒必要去深究,記住就OK!
Ⅳ vivado14.4 edk如何加入i2c的ip
SOPC Builder、Quartus II 8.0、Nios II
8.0
IDE。開發工具安裝目錄:D:\。
第一步,下載i2c外設軟體包:oc_i2c_master.rar。本軟體包包含i2c外設的HDL實現,及驅動代碼。網路上很容易找到。
第二步,解壓,並把整個文件夾復制到D:\altera\80\ip\sopc_builder_ip\。
第三步,在Altera SOPC Builder中create new
componet-file-open
打開D:\altera\80\ip\sopc_builder_ip\ oc_i2c_master\中的class.ptf文件。
第四步,在Altera SOPC
Builder中Tools-options-IP Search
Path 如下設置:D:\altera\80\ip\sopc_builder_ip。
第五步,此時Altera SOPC Builder左側Systerm
Contents中出現DeviceSOPC-〉oc_i2c_master外設。雙擊此條目,i2c外設及可被添加到niosII上。
第六步,Altera SOPC Builder中sopc buildergenerate。
第七步,若沒有錯誤,在Quartus
II中頂層文件中(bdf文件)加入上步生成的nios_cpu模塊。
第八步,添加IO
PIN,並把i2c相關的兩個腳設置成雙向IO,並設置成開漏輸出。注意硬體上,i2c兩個IO要加上拉電阻,2K歐姆較為合適。
第九步,Quartus II編譯整個工程。
第十步,基於這個nios cpu在Nios II
IDE中建立工程。通過包含頭文件「oc_i2c.h」即可調用i2c外設的相關驅動函數。注意在讀寫i2c外設之前請先調用i2c初始化函數。
在Quartus II中編譯整個工程時,若出現以下錯誤:Error:Node
Ⅳ vivado 怎麼把i o t 封裝到一起
Vivado Logic Analyzer的使用
chipscope中,通常有兩種方法設置需要捕獲的信號。
1.添加cdc文件,然後在網表中尋找並添加信號
2.添加ICON、ILA和VIO的IP Core
第一種方法,代碼的修改量小,適當的保留設計的層級和網線名,圖形化界面便於找到
需要捕獲的信號。
第二種方法,對代碼的改動量大一些,同時需要熟悉相關IP的設置,優點是,可以控制
ICON,並調用VIO。
與之類似,Vivado也有著兩種方法進行設置。
1.在綜合後的網表中尋找相關信號,右鍵點開菜單,然後設置mark debug
2.添加ILA,VIO的IP Core
第一種方法與chipscope的第一種方法極為類似:
1.都需要綜合後才能設置;
2.都需要保留一定的設計層級或者網線名來便於尋找信號;
3.並非所有信號都可以被捕獲,不能捕獲的信號,chipscope中是顯示為灰色,vivado
中是沒有mark debug的選項在右鍵菜單中;
第二種方法就更為類似了,vivado可以兼容ISE的IP,所以可以直接調用chipscope的相
關IP,調試時也只是用Chipscope,另外可以使用Vivado自己的ILA IP,來進行設計,
但最大的問題是Vivado不提供ICON的IP以供選擇,進一步埋沒了ICON的地位。
另外,早起的Vivado IP Catalog提供Chipscope的ICON、ILA和VIO IP Core可以選擇,目前已經取消了這些IP,只支持Vivado自己的ILA/VIO IP Core。
這里提供一個非常簡單的設計代碼,用於Vivado Logic Analyzer的研究。
`timescale 1ns / 1ps
mole Nexy_4 (
input I_CLK,
output [3:0] O_ST_COUNTER,
output O_TIMECOUNTER_OUTPUT
);
wire CLK_100;
clk_wiz_0 CLK_UNIT
(
.clk_in1 (I_CLK),
.clk_out1 (CLK_100),
.locked ()
);
reg [7:0] startup_counter = 'b0;
always @ (posedge CLK_100)begin
if(startup_counter == 8'b11111111)begin
startup_counter <= 8'b00000011;
end else begin
startup_counter <= startup_counter + 8'b1;
end
end
assign O_ST_COUNTER = startup_counter[7:4];
wire [47:0] TimeCounter_Result_wire ;
reg [47:0] TimeCounter_Result_reg = 'b0 ;
reg TimeCounter_Output ;
always @ (posedge CLK_100)begin
TimeCounter_Result_reg <= TimeCounter_Result_wire;
end
TimeCounter TimeCounter_Unit (
.CLK ( CLK_100 ), // input wire CLK
.A ( 2'b01 ), // input wire [1 : 0] A
.C ( TimeCounter_Result_reg ), // input wire [47 : 0] C
.P ( TimeCounter_Result_wire ) // output wire [47 : 0] P
);
always @ ( posedge CLK_100 )begin
TimeCounter_Output <= TimeCounter_Result_reg[47];
end
assign O_TIMECOUNTER_OUTPUT = TimeCounter_Output ;
endmole
綜合後的Netlist中選擇信號進行捕獲的方法。
只有Nets下的信號可以設置mark debug。
從原理上來說是很不合理的。Chipscope的捕獲界面中,只有Reg信號可以被抓取,而Vivado是Net,從實際的角度說也是很不合理的,LUT可以直接被抓去,從原理上和時序上,對設計都是不合適的。
在Set Up Debug中,工具會自動分析信號的所在時鍾域,並添加時鍾。少數情況,可以通過右鍵點擊Select Clock Domain來修改時鍾域。
下一頁設置存儲深度,相比較ChipScope,信號的寬度不需要事先設定好,而是根據捕獲信號來自動設定,Vivado確實方便了很多。
設置好之後,可以在屬性中修改ILA Core的屬性。確認無誤後進行Implementation。
不過,從Implementation的結果可以看到,雖然抓取的是LUT的信號,但是ILA的IP已經添加了寄存器進行隔離。從這一結果考慮,Vivado的ILA設計還是很優秀的。
但即使是這樣,為了netlist中的Reg型信號無法設置mark debug,確實是一個不好理解的解釋。
最終,Vivado Logic Analyzer的設置會以Tcl腳本的形式反應到XDC文件中。
完成Implementation後,生成bit文件,打開Hardware Manager,下載並配置好FPGA,開始Vivado Logic Analyzer的使用。
1. 下載好bit文件後的界面如下圖所示。
2. 這里有個問題,Vivado 2014.2中,Debug Probes窗口不會自動打開,可以再Windows選項單中找到該窗口。
3. 打開Debug Probes窗口後的界面如下圖所示。
4. 在Debug Probes中,把需要觀察的信號拖到Basic Trigger Setup中,可以設置觸發信號。
5. 設置好觸發信號之後,就可以開始捕獲信號。
6. 每一組觸發條件可以設置Operator、Radix和Value來設置具體的觸發條件,多個觸發條件還可以進行組合。
7. 為了便於觀察,在Window data depth將數據設為16個數據。
8. 設置好之後重新捕獲數據,可以看到一次只捕獲16個數據。
9. 可以設置窗口的數目,這里將Number of Windows設為2,代表兩個窗口,每次捕獲的數據為4個。
10. 重新觸發後,可以看到,觸發了兩次,每次的觸發條件都是一致的,即startup_counter = 8』h03。從下方的兩個計數器可以看到,是先後的兩次捕獲。
其實,與chipscope類似,可以設置捕獲數據的條件。
1. 將Capture mode設置為BASIC。
2. 在Basic Trigger Setup下面可以看到Basic Capture Setup的界面。
3. 從上兩張圖可以看到,觸發信號為starup_counter,觸發條件為03,捕獲條件為88,觸發位置為7。
4. 從捕獲結果圖來看,一共捕獲了16個數據,觸發條件處在第7個數據的位置上,該觸發條件會被捕獲。另外,在觸發條件前後的數據,只有數據位88時才會被捕獲。
5. 將觸發位置設為0後重新捕獲,可以看到第一個數據是觸發條件,隨後的數據只有為88才會被捕獲。
6. 這里,對ChipScope和Vivado Logic Analyzer的功能進行一個初步的比較。
ChipScope Vivado Logic Analyzer Basic
多種觸發值 支持 支持
觸發條件組合 支持 支持
觸發位置選擇 支持 支持
多窗口觸發 支持 支持
重復觸發 支持 支持
條件捕獲 支持 支持
狀態機觸發 16狀態 不支持
計數器輔助 支持 不支持
標志位顯示 不支持 不支持
重復觸發功能在文章中沒有涉及。
從該表可以看到,ChipScope的功能似乎較為強大。雖然在設置捕獲信號時Vivado較為便捷,但是在調試時似乎不如ChipScope的方便。
需要注意的是,Vivado並沒有確實這些功能,而是沒有提供在Basic功能中,關於Advancedd用法,會在後續博文中描述。
Ⅵ 如何在Vivado中配置和管理可重用IP
在Design窗口右鍵選New Source 選中左邊列表裡的IP(Core Generator ...) 隨便寫個名字 點next就可以看到IP庫的索引 FFT IP CORE
在Digital Signal Processing - Transforms - FFTs下14.x的名字應該是Fast Fourier Transform 7.1在配置界面點help可以打開pdf格式的詳細說明!
Ⅶ vivado 四位二進制加法計數器 在數碼管上顯示的代碼,和引腳分配
只能告訴你原理,先用一做計數器用你學號作為默認值,開關控制計數器增加;這個很簡單,主要是顯示,顯示要用動態顯示,數碼管的位選要在四個數碼管上快速的循環轉移,這樣能看出來四個數碼管是都亮的效果,段選就比較簡單了,通過一個解碼動作...
Ⅷ fpga未使用的管腳放在匯流排上如何設置管腳類型,不影響匯流排
如果是 Xilinx ISE 的話,在左側Design窗口中的generate programming file按鈕那裡,右鍵點擊,彈出菜單中的process properties選項卡里,有unused IOB的屬性配置,即未用管腳熟悉配置,可選擇為上拉,下拉或者懸空,你可以根據需要配置這個熟悉。
如果匯流排上的使能信號是低電平有效的,建議將默認unused IOB屬性配置為 Pull Up即上拉,當然,具體配置啥還是要看你的系統中怎麼要求的
Ⅸ vivado 錯誤怎麼改
Vivado Logic Analyzer的使用
chipscope中,通常有兩種方法設置需要捕獲的信號。
1.添加cdc文件,然後在網表中尋找並添加信號
2.添加ICON、ILA和VIO的IP Core
第一種方法,代碼的修改量小,適當的保留設計的層級和網線名,圖形化界面便於找到
需要捕獲的信號。
第二種方法,對代碼的改動量大一些,同時需要熟悉相關IP的設置,優點是,可以控制
ICON,並調用VIO。
與之類似,Vivado也有著兩種方法進行設置。
1.在綜合後的網表中尋找相關信號,右鍵點開菜單,然後設置mark debug
2.添加ILA,VIO的IP Core
第一種方法與chipscope的第一種方法極為類似:
1.都需要綜合後才能設置;
2.都需要保留一定的設計層級或者網線名來便於尋找信號;
3.並非所有信號都可以被捕獲,不能捕獲的信號,chipscope中是顯示為灰色,vivado
中是沒有mark debug的選項在右鍵菜單中;
第二種方法就更為類似了,vivado可以兼容ISE的IP,所以可以直接調用chipscope的相
關IP,調試時也只是用Chipscope,另外可以使用Vivado自己的ILA IP,來進行設計,
但最大的問題是Vivado不提供ICON的IP以供選擇,進一步埋沒了ICON的地位。
另外,早起的Vivado IP Catalog提供Chipscope的ICON、ILA和VIO IP Core可以選擇,目前已經取消了這些IP,只支持Vivado自己的ILA/VIO IP Core。
這里提供一個非常簡單的設計代碼,用於Vivado Logic Analyzer的研究。
`timescale 1ns / 1ps
mole Nexy_4 (
input I_CLK,
output [3:0] O_ST_COUNTER,
output O_TIMECOUNTER_OUTPUT
);
wire CLK_100;
clk_wiz_0 CLK_UNIT
(
.clk_in1 (I_CLK),
.clk_out1 (CLK_100),
.locked ()
);
reg [7:0] startup_counter = 'b0;
always @ (posedge CLK_100)begin
if(startup_counter == 8'b11111111)begin
startup_counter <= 8'b00000011;
end else begin
startup_counter <= startup_counter + 8'b1;
end
end
assign O_ST_COUNTER = startup_counter[7:4];
wire [47:0] TimeCounter_Result_wire ;
reg [47:0] TimeCounter_Result_reg = 'b0 ;
reg TimeCounter_Output ;
always @ (posedge CLK_100)begin
TimeCounter_Result_reg <= TimeCounter_Result_wire;
end
TimeCounter TimeCounter_Unit (
.CLK ( CLK_100 ), // input wire CLK
.A ( 2'b01 ), // input wire [1 : 0] A
.C ( TimeCounter_Result_reg ), // input wire [47 : 0] C
.P ( TimeCounter_Result_wire ) // output wire [47 : 0] P
);
always @ ( posedge CLK_100 )begin
TimeCounter_Output <= TimeCounter_Result_reg[47];
end
assign O_TIMECOUNTER_OUTPUT = TimeCounter_Output ;
endmole
綜合後的Netlist中選擇信號進行捕獲的方法。
只有Nets下的信號可以設置mark debug。
從原理上來說是很不合理的。Chipscope的捕獲界面中,只有Reg信號可以被抓取,而Vivado是Net,從實際的角度說也是很不合理的,LUT可以直接被抓去,從原理上和時序上,對設計都是不合適的。
在Set Up Debug中,工具會自動分析信號的所在時鍾域,並添加時鍾。少數情況,可以通過右鍵點擊Select Clock Domain來修改時鍾域。
下一頁設置存儲深度,相比較ChipScope,信號的寬度不需要事先設定好,而是根據捕獲信號來自動設定,Vivado確實方便了很多。
設置好之後,可以在屬性中修改ILA Core的屬性。確認無誤後進行Implementation。
不過,從Implementation的結果可以看到,雖然抓取的是LUT的信號,但是ILA的IP已經添加了寄存器進行隔離。從這一結果考慮,Vivado的ILA設計還是很優秀的。
但即使是這樣,為了netlist中的Reg型信號無法設置mark debug,確實是一個不好理解的解釋。
最終,Vivado Logic Analyzer的設置會以Tcl腳本的形式反應到XDC文件中。
完成Implementation後,生成bit文件,打開Hardware Manager,下載並配置好FPGA,開始Vivado Logic Analyzer的使用。
1. 下載好bit文件後的界面如下圖所示。
2. 這里有個問題,Vivado 2014.2中,Debug Probes窗口不會自動打開,可以再Windows選項單中找到該窗口。
3. 打開Debug Probes窗口後的界面如下圖所示。
4. 在Debug Probes中,把需要觀察的信號拖到Basic Trigger Setup中,可以設置觸發信號。
5. 設置好觸發信號之後,就可以開始捕獲信號。
6. 每一組觸發條件可以設置Operator、Radix和Value來設置具體的觸發條件,多個觸發條件還可以進行組合。
7. 為了便於觀察,在Window data depth將數據設為16個數據。
8. 設置好之後重新捕獲數據,可以看到一次只捕獲16個數據。
9. 可以設置窗口的數目,這里將Number of Windows設為2,代表兩個窗口,每次捕獲的數據為4個。
10. 重新觸發後,可以看到,觸發了兩次,每次的觸發條件都是一致的,即startup_counter = 8』h03。從下方的兩個計數器可以看到,是先後的兩次捕獲。
其實,與chipscope類似,可以設置捕獲數據的條件。
1. 將Capture mode設置為BASIC。
2. 在Basic Trigger Setup下面可以看到Basic Capture Setup的界面。
3. 從上兩張圖可以看到,觸發信號為starup_counter,觸發條件為03,捕獲條件為88,觸發位置為7。
4. 從捕獲結果圖來看,一共捕獲了16個數據,觸發條件處在第7個數據的位置上,該觸發條件會被捕獲。另外,在觸發條件前後的數據,只有數據位88時才會被捕獲。
5. 將觸發位置設為0後重新捕獲,可以看到第一個數據是觸發條件,隨後的數據只有為88才會被捕獲。
6. 這里,對ChipScope和Vivado Logic Analyzer的功能進行一個初步的比較。
ChipScope Vivado Logic Analyzer Basic
多種觸發值 支持 支持
觸發條件組合 支持 支持
觸發位置選擇 支持 支持
多窗口觸發 支持 支持
重復觸發 支持 支持
條件捕獲 支持 支持
狀態機觸發 16狀態 不支持
計數器輔助 支持 不支持
標志位顯示 不支持 不支持
重復觸發功能在文章中沒有涉及。
從該表可以看到,ChipScope的功能似乎較為強大。雖然在設置捕獲信號時Vivado較為便捷,但是在調試時似乎不如ChipScope的方便。
需要注意的是,Vivado並沒有確實這些功能,而是沒有提供在Basic功能中,關於Advancedd用法,會在後續博文中描述。
Ⅹ vivado分配引腳必須寫約束文件嗎
FPGA分配引腳有幾種方法: 1,在你的VHDL裡面用約束把管腳直接綁定到某個管腳 2,開發系統里可以編輯一個約束文件,把所有的管腳約束都房子這個文件裡面; 3,開發系統里還提供一個圖形化的工具,你可以拉動你的IO腳到某個PAD。