新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > FPGA研發(fā)之道(5)從零開始調(diào)試FPGA

        FPGA研發(fā)之道(5)從零開始調(diào)試FPGA

        作者: 時(shí)間:2014-10-20 來源:網(wǎng)絡(luò) 收藏

          “合抱之木,生于毫末;九層之臺(tái),起于壘土;千里之行,始于足下。” 老子《道德經(jīng)》

        本文引用地址:http://www.104case.com/article/264140.htm

          對(duì)于新手來說,如何上手調(diào)試是關(guān)鍵的一步。

          對(duì)于每一個(gè)新設(shè)計(jì)的板卡,也需要從零開始調(diào)試。

          那么如何開始調(diào)試?

          下面介紹一種簡(jiǎn)易的調(diào)試方法。

          (1) 至少設(shè)定一個(gè)輸入時(shí)鐘 input sys_clk;

          (2) 設(shè)定輸出 output [N-1:0] led;

          (3)設(shè)定32位計(jì)數(shù)器 reg [31:0] led_cnt;

          (4) 時(shí)鐘驅(qū)動(dòng)計(jì)數(shù)器開始工作

          always@(posedge sys_clk)

          led_cnt <= led_cnt + 1

          (5)輸出led信號(hào)。

          assign led = led_cnt[M:N];

          程序完成。

          (6)設(shè)定管教約束

          如果為XILINX ,在UCF文件中 NET “sys_clk” LOC = 管腳名稱

          如果為ALTERA FPGA ,在QSF文件中,添加 set_location_assignment 管腳名稱 -to sys_clk

          其他管腳,可依次類推。

          (7)編譯,布局、布線,生成配置文件。

          XILINX 生成BIT文件。

          ALTERA 生成SOF文件

          (8)連接,下載相應(yīng)的配置文件。

          (9)觀察是否閃燈(肉眼可見)。

          關(guān)于閃燈的解釋如下:

          assign led = led_cnt[M:N]; led_cnt 為32bit的信號(hào),需要幾個(gè)閃燈,則根據(jù)輸入時(shí)鐘的頻率和肉眼能夠分辨的時(shí)間(100ms)。如輸出時(shí)鐘為25Mhz。則閃燈看見的位置能夠分批到10hz。需分頻2.5M= 32‘h2625A0,因此,則需要輸出至少為led_cnt[21]位,才能看到閃燈。

          雖然程序簡(jiǎn)單,但是,通過調(diào)試可以確認(rèn):

          (1)首先可確定下載器的正確連接,能夠正常下載下載文件。如不能,常見問題包括

          (一)檢查是否安裝驅(qū)動(dòng)。

          (二)下載器是否由紅燈變成黃燈/綠燈。如紅燈亮一般情況下,的與電路板VCC沒有供電。

          (三)檢查JTAG連接的線序。

          (四)檢查JTAG電路,檢查原理圖上TMS,TDI,TDO的上拉和下拉電阻是否與datasheet中一致。

          通過以上四種方式,可排除絕大部分JTAG下載的錯(cuò)誤。

          (2)可以判斷晶振是否起振,下載后無燈閃。

          (一)首先,示波器查看晶振頻率,觀察晶振的輸出,如無輸出,查看晶振的電源和地信號(hào),如電源正常,而晶振無反應(yīng),則更換晶振。

          (二)如無示波器,也有替代的方法,通過嵌入式邏輯分析儀抓信號(hào)(任意信號(hào))。如邏輯分析儀點(diǎn)擊采樣后無反應(yīng),則無時(shí)鐘輸入。

          這是因?yàn)檫壿嫹治鰞x也需要時(shí)鐘進(jìn)行邏輯值的存儲(chǔ)。

          (3)如正常下載后閃燈,證明該FPGA板卡硬件設(shè)計(jì)上能夠達(dá)到最低限度的FPGA調(diào)試狀態(tài)。

          最后,說明一下,為什么是閃燈而不是亮燈的程序,這是因?yàn)椋紫乳W燈可以判斷外部晶振工作正常,并且由于LED等通常為上拉,也就是說邏輯值0表示燈亮,而也不排除某硬件工程師非要下拉。邏輯1表示亮。因此采用閃燈更加方便。

          問題:為什么LED燈值為什么要上拉?

          這是因?yàn)椋篖ED上拉后,需要燈亮?xí)r電流由外部電源提供,而下拉,燈亮?xí)r電流由芯片的電路驅(qū)動(dòng)。這種在設(shè)計(jì)中應(yīng)避免。

        fpga相關(guān)文章:fpga是什么


        塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理
        晶振相關(guān)文章:晶振原理
        上拉電阻相關(guān)文章:上拉電阻原理


        關(guān)鍵詞: FPGA JTAG CMOS

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 新建县| 西贡区| 罗田县| 萨迦县| 德保县| 农安县| 宜章县| 赤城县| 柳河县| 淳安县| 龙泉市| 乌兰察布市| 乡宁县| 冀州市| 湾仔区| 高雄县| 伽师县| 雅安市| 湛江市| 西乌珠穆沁旗| 日喀则市| 射洪县| 郓城县| 鸡泽县| 文山县| 安徽省| 楚雄市| 闵行区| 昌吉市| 睢宁县| 东辽县| 三江| 武义县| 哈巴河县| 武穴市| 石渠县| 水富县| 友谊县| 德安县| 泸定县| 武功县|