FPGA開發全攻略—— 調試

原文鏈接:

FPGA開發全攻略連載之十三:FPGA實戰開發技巧(12)

?

5.6 大規模設計的調試經驗

在大規模設計的調試應該按照和設計理念相反的順序,從底層測試,主要依靠ChipScope Pro 工具。下面主要介紹ChipScope Pro、FPGA Editor 組件的使用方法。

5.6.1 ChipScope Pro組件應用實例

在賽靈思軟件設計工具中,ISE 可集成賽靈思公司的所有工具和程序。ChipScope Pro 也不例外,在ISE 中將其作為一類源文件,和HDL 源文件、IP Core 以及嵌入式系統的地位是等同的。本節在Xilinx Spartan3E-D開發板上實現一個計數器模塊,基于該模塊詳細介紹如何在ISE 中新建ChipScope 應用以及觀察、分析數據的詳細操作。

例5.6.1 :在ISE 中實現一個8 比特計數器,利用ChipScope 分析其邏輯輸出。

(1) 新建用戶工程,添加mycounter.v 的源文件,其內容如下所列:
module mycounter(clk, reset, dout);
  input clk;
  input reset;
  output [7:0] dout;
  reg [7:0] dout;
  always @(posedge clk) begin
    if (reset == 0)
      dout <= 0;
    else
      dout <= dout + 1;
  end
endmodule

然后根據電路連接,添加相應的管腳約束。

(2) 綜合工程,然后在ISE 工程管理區,單擊右鍵,選擇“Add New Source”命令,在彈出的對話框中選擇“ChipScope Definition and Connection File” 類型, 并在“File Name” 欄輸入ChipScope 設計名稱mychipscope,如圖5-41所示。

?

添加ChipScope設計示意圖

?

?

圖5-41 添加ChipScope設計示意圖

?

?

測試模塊選擇界面

?

?

圖5-42 測試模塊選擇界面

?

單擊“Next”按鍵,進入分析文件選擇界面,這里會將該文件夾里所有的HDL 設計、原理圖設計都羅列出來( 包括頂層模塊和全部底層模塊),供用戶挑選,用鼠標單擊即可選中,本例選擇mycounter,如圖5-42 所示。單擊“Next”按鍵進入小結頁面,單擊“Finish”按鍵完成添加。

(3) 雙擊工程區mycounter.v 下的子模塊mychipscope.cdc,可自動打開Chipscope Pro Core Insterser軟件,添加觸發單元和觸發位寬。其中觸發類型選為Basic,位寬為8比特;設置采樣深度為4096,各步驟如圖5-43到圖5-46所示。

?

調試工程配置界面

?

?

圖5-43 調試工程配置界面

?

?

ICON核配置界面

?

?

圖5-44 ICON核配置界面

?

?

觸發信號配置界面

?

?

圖5-45 觸發信號配置界面

?

?

采集深度配置界面

?

?

圖5-46 采集深度配置界面

?

(4) 點擊“Next”進入網表連接顯示頁面,如圖5-47 所示。其中如果用戶定義的觸發和時鐘信號線有未連接的情況,則圖中“UNIT”、“CLOCKPORT”以及“TRIGGERPORTS”等字樣以紅色顯示;正確完成連接后則變成黑色。

?

網表連接提示界面

?

?

圖5-47網表連接提示界面

?

點擊圖5-47 中“Modify Connection”的按鍵,進入連接頁面,時鐘和數據的連接如圖5-48、圖5-49所示。需要注意的是,ChipScope Pro 只能分析FPGA 設計的內部信號,因此不能直接連接輸入信號的網表,所以輸入信號網表全部以灰色顯示。如果要采樣輸入信號,可通過連接其輸入緩沖信號來實現,時鐘信號選擇相應的BUFGP,普通信號選擇相應的IBUF。如圖5-48 中所示,選擇采樣時鐘時,選擇了CLK_BUFGP。

?

時鐘網表連接界面

?

?

圖5-48 時鐘網表連接界面

?

?

觸發網表連接界面

?

?

圖5-49 觸發網表連接界面

?

連接完成后,單擊“OK”按鍵返回連接顯示界面,發現所有提示字符“UNIT”、“CLOCKPORT”以及“TRIGGERPORTS”沒有紅色,則單擊“Return Project Navigator”,退出Chipscope,返回到ISE 中。否則需要再次點擊“Modify Connection”按鍵重新連接。

(5) 在工程中加入UCF 文件,約束時鐘、數據管腳位置。為了簡化也可以只添加clk 和reset 這兩個控制信號的管腳約束,其內容如下:

NET "clk" LOC = "C9" | IOSTANDARD = LVCMOS33 ;
# Define clock period for 50 MHz oscillator (40%/60% duty-cycle)
NET " clk " PERIOD = 20.0ns HIGH 40%;
NET "reset" LOC = "H13" | IOSTANDARD = LVTTL | PULLDOWN ;

(6) 在ISE 過程控制區中雙擊“Implement Design”和“Generate Programming File”, 可以完成實現以及生成可編程文件,并將設計人員插入的各類核也將被包含在比特文件中。生成配置文件后,雙擊圖5-50所示的“Analyze Design Using Chipscope”圖標,可自動打開Chipscope Pro Analyzer 軟件。

?

Chipscope Pro Analyzer啟動操作示意圖

?

?

圖5-50 Chipscope Pro Analyzer啟動操作示意圖

?

(7) 在Chipscope Analyzer 用戶界面上點擊工具欄上圖標“ ”,初始化邊界掃描鏈。等掃描完成后,單擊“Device”菜單下“DEV: 0 My Device0(XC3S500E) → Configure”命令選擇.bit 文件配置FPGA。
(8) 芯片配置完成后,選擇“File”菜單的“Import”命令,可彈出CDC 文件加載頁面,選擇相應的CDC 文件,將會把所有以“Dataport”的名稱修改為綜合后的線網名稱。
(9) 組合cnt 總線信號。可按住“Ctrl”鍵,選擇多個總線信號,單擊右鍵,選擇“Add to Bus”命令,將其組合成相應的總線信號,如圖5-51 所示。

?

添加總線操作示意圖

?

?

圖5-51 添加總線操作示意圖

?

(10) 不設定觸發條件采集數據。點擊工具欄的“ ”圖標,開始采集數據。整體結果如圖5-52 所示,單擊工具欄的“ ”按鍵,可放大信號,局部結果如圖5-53 所示。從分析結果可以看出,本設計在FPGA中成功地完成了8 比特計數器的功能。

?

Analyzer分析結果整體示意圖

?

?

圖5-52 Analyzer分析結果整體示意圖

?

?

Analyzer分析結果局部示意圖

?

?

圖5-53 Analyzer分析結果局部示意圖

?

(11) 設定觸發條件采集數據。在“Trigger Setup”欄Match 區域的“M0: Trigger Port0”行的Value 列輸入觸發條件“0000_0000”,如圖5-54 所示。

?

觸發條件設置界面

?

?

圖5-54 觸發條件設置界面

?

點擊工具欄的“ ”圖標,開始采集數據,可以看到,采集結果的第一個數為0,如圖5-55 所示。當然,
用戶可以根據需要設置更復雜的觸發條件。

?

觸發條件設置界面

?

?

圖5-55 觸發條件設置界面

?

(12) 利用Bus Plot 功能繪制輸出信號波形。在工程區雙擊“Bus Plot”命令,然后在彈出窗口的“Bus Selection”區域選中“dout”,則會將采集數據以圖形方式顯示出來,如圖5-56 所示。由于本設計是8 比特加1 計數器,因此其波形就是幅度為0 到255 的鋸齒波。

?

8計數器的波形示意圖

?

?

圖5-56 8計數器的波形示意圖

?

轉載于:https://www.cnblogs.com/synow/p/5500416.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457903.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457903.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457903.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

003很好的網絡博客(TCP/IP)-很全

http://www.cnblogs.com/obama/p/3292335.html 很全的計算機網絡方面的資料。

linux驅動文件操作簡單介紹

1、設備號 主設備號標識設備對應的驅動程序&#xff0c;次設備號由內核使用&#xff0c;用于確定設備文件所指的設備。 通過次設備號獲得一個指向內核設備的直接指針&#xff0c;也可將此設備號當作設備本地數組的索引。 設備編號用dev_t表示&#xff08;Linux/types.h 32位…

php學習筆記細節部分。

<?phpclass Car{public function Car()//構造函數 {//codeing 當實例化類的時候會調用這里面的方法}public function _destruct()//析構函數 {//codeing 對象的所有引用被刪除&#xff0c;或者對象被顯式的銷毀時會執行的函數。 }} l轉載于:https://www.cnblogs.com/OnlyL…

ctypes python_[python學習之路]ctypes,Python

ctypes 基本用法 ctypes 是一個方便 Python 調用本地已經編譯好的外部庫的模塊。 from ctypes import util, CDLL 標準 C 庫 使用 util 來找到標準 C 庫&#xff1a; libc_name util.find_library(c) # on WINDOWS print libc_name msvcr90.dll 使用 CDLL 來加載 C 庫&#xf…

oracle創建表空間和用戶授權

確定數據文件的存儲地址&#xff0c;有兩種情況&#xff0c;一個是明確存儲地址&#xff0c;一個是跟其他表空間存在一個地方&#xff0c;但是不知道地址&#xff0c;這時候可以根據如下SQL進行查找&#xff1a;select t.* from sys.dba_data_files t where t.tablespace_name…

linux驅動 cdev,inode結構體

前面我們學習了字符設備結構體cdev Linux 字符設備驅動開發 &#xff08;一&#xff09;—— 字符設備驅動結構&#xff08;上&#xff09; 下面繼續學習字符設備另外幾個重要的 數據結構。 先看下面這張圖&#xff0c;這是Linux 中虛擬文件系統、一般的設備文件與設備驅動程…

如何在VS和CB中配置MySQL環境

這里&#xff0c;由于我的MySQL安裝在D盤 MY SQL\MySQL Server 5.6該路徑下&#xff0c;所以后面的路徑均以D:\MY SQL\MySQL Server 5.6開頭 在VS中配置MySQL環境 包含目錄&#xff1a; D:\MY SQL\MySQL Server 5.6\include 庫目錄&#xff1a;D:\MY SQL\MySQL Server 5.…

點乘和叉乘的區別_關于延時和混響的區別與專用延時器與混響器的調控技巧

關于延時和混響的區別與專用延時器與混響器的調控技巧延時器與混響器是模擬室內聲場聲音信號特性的專用設備。在錄音節目制作中&#xff0c;延時器和混響器可以在模擬的藝術聲場中傳遞時間、空間、方位、距離等重要信息&#xff0c;并且可以制作某些特殊效果。延時器與混響器工…

zabbix監控工具

實驗環境網關 classroom 172.25.8.254workstation 172.25.8.9server a-jeth0 172.25.8.10-外網eth1 192.168.0.x內網eth2 192.168.1.x備用servera:webservere:server--------------------------------------------需求&#xff1a;監控設計&#xff1a;原理&#xff1a;硬件&…

linux驅動 自旋鎖

最近在內核頻繁使用了自旋鎖&#xff0c;自旋鎖如果使用不當&#xff0c;極易引起死鎖&#xff0c;在此總結一下。 自旋鎖是一個互斥設備&#xff0c;它只有兩個值&#xff1a;“鎖定”和“解鎖”。它通常實現為某個整數值中的某個位。希望獲得某個特定鎖得代碼測試相關的位。…

百度輸入法

[用戶界面]&#xff1a;界面美觀&#xff0c;有不同畫風的ui界面&#xff0c;適合不同消費群體的需求。 [記住用戶選擇]&#xff1a;會默認記住用戶以往的輸入習慣&#xff0c;只需輸入首拼音字母就會出現過去使用的高頻詞。 [短期刺激]&#xff1a;美化的用戶界面讓人眼前一新…

rs232讀取智能電表_三相電表怎么看度數 怎么計算總電量

現在的三相電表一般都是在屏幕上面直接看&#xff0c;屏幕上面是有文字提示顯示的&#xff0c;三相電表的總度數&#xff0c;上面的文字提醒一般是“正向有功總電量”&#xff0c;三相電表一般屏幕旁邊都會上翻鍵和下翻鍵&#xff0c;可以上下翻開電表里面的數據。如下圖所示&a…

android 學習隨筆十六(廣播 )

1、廣播接收者 BroadcastReceiver接收系統發出的廣播現實中的廣播&#xff1a;電臺為了傳達一些消息&#xff0c;而發送的廣播&#xff0c;通過廣播攜帶要傳達的消息&#xff0c;群眾只要買一個收音機&#xff0c;就可以收到廣播了 Android中的廣播&#xff1a;系統在運行過程中…

驅動面試題總結

1、字符型驅動設備你是怎么創建設備文件的&#xff0c;就是/dev/下面的設備文件&#xff0c;供上層應用程序打開使用的文件&#xff1f; 答&#xff1a;mknod命令結合設備的主設備號和次設備號&#xff0c;可創建一個設備文件。 評&#xff1a;這只是其中一種方式&#xff0…

python程序寫詩_將Python詩歌與D結合起來

在與docker一起使用poetry時&#xff0c;需要記住以下幾點。 安裝 安裝poetry的正式方法是通過&#xff1a;curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python 這種方式允許poetry及其依賴項與依賴項分離。但是&#xff0c;在我看來…

Azure運維系列 4:安裝和使用Azure PowerShell管理云

前面講到了很多的管理方式&#xff0c;包括Azure中國最近更新的預覽版管理門戶和Azure云助理&#xff0c;都是非常不錯的管理Azure的方式&#xff0c;今天我們再來介紹一種更加高效的管理方式Azure PowerShell。熟悉命令行的朋友都知道&#xff0c;Linux之所以那么好用是因為其…

[轉]char * 和字符數組

[轉]char * 和字符數組 原文地址&#xff1a;http://www.cnblogs.com/jeakon/archive/2012/05/27/2816809.html 代碼中的int * i就是我們關注的焦點。它是一個指向int指針。也就是說&#xff1a;i指向一個內存地址&#xff0c;從這個地址開始存儲了一個數據。int * i中的int標明…

設備模型1

作為開頭篇&#xff0c;我不想寫HELLLOWORLD驅動&#xff0c;甚至字符設備驅動的開發&#xff0c;這樣文章充斥在各大網站上的博客上&#xff0c;隨便搜搜&#xff0c;就可以找到幾百篇。這是最基本的東西&#xff0c;通過這些內容的學習&#xff0c;我們要掌握LINUX驅動的基本…

如何使用Android Studio把自己的Android library分享到jCenter和Maven Central

第一部分&#xff1a;在bintray上創建package首先&#xff0c;你需要在bintray上創建一個package。為此&#xff0c;你需要一個bintray賬號&#xff0c;并在網站上創建一個package。第一步&#xff1a;在bintray.com上注冊一個賬號。&#xff08;注冊過程很簡單&#xff0c;自己…

python2編碼_Python2字符編碼

我們通常見到的字符串編碼主要是三種GB2312/GBK、Unicode、UTF-8。GB2312/GBK是多字節(multibytes)編碼的一種&#xff0c;屬于“ASCII的加強版”&#xff0c;與之平行的由Big5、ShiftJIS之類的編碼各自為政&#xff0c;所有這些用兩個字節表示漢字的多字節編碼標準統稱為ANSI編…