全網首創ISE入門級教程

来源:http://www.cnblogs.com/ninghechuan/archive/2017/07/17/7171791.html
-Advertisement-
Play Games

轉眼間我已經大三了,現在成為了實驗室的負責人,對於下一屆學生的納新重任就交到了我的手上,想採取不同的方法暑假儘可能對他們進行一些培訓,所以製作了此教程,說實話,在網上還沒有找到關於ISE的入門級使用教程呢!可謂是全網首創啊!話不多說,我們趕緊看看我的處女視頻教程吧! 互聯網是最好的學習平臺,讓貧富之 ...


   轉眼間我已經大三了,現在成為了實驗室的負責人,對於下一屆學生的納新重任就交到了我的手上,想採取不同的方法暑假儘可能對他們進行一些培訓,所以製作了此教程,說實話,在網上還沒有找到關於ISE的入門級使用教程呢!可謂是全網首創啊!話不多說,我們趕緊看看我的處女視頻教程吧!

  互聯網是最好的學習平臺,讓貧富之間的教育資源差距減小,對於FPGA來說晚上的教學資料、視頻非常多,但是多數為Altera的QuartusII開發套件使用,而Vidado的使用貌似這兩年也多了起來,那麼ISE被拋棄了嗎?之前有過一個前輩做過關於ISE的使用教程,但那都涉及到攝像頭驅動的FPGA進階階段了,所以今天這套FPGA入門第一課的視頻教程,可真謂是全網首創關於ISE軟體的使用教程。這是西郵電院FPGA創新小組的納新公開課,FPGA入門第一課一位全加器的設計(ISE使用教程的百度雲盤鏈接在文章第五部分)。

 

一、 FPGA創新小組納新公告

  FPGA創新實驗室處於西安郵電大學2號實驗樓(電子工程學院實驗樓)107實驗室。主要學習方向為數字集成電路設計(FPGA),每年九月份中旬進行納新,主要面向微電子系(集成電路和微電子專業)的16級學生。為了使納新結束後大家能夠快速進入學習狀態,我們暑假會針對納新考核進行相應的培訓,讓大家提前有一個對FPGA的認識並且能設計出一些簡單的電路。群文件有相關資料,請大家自行下載學習。前期需要大家將軟體下載安裝(鏈接如下),學習一些數電基礎知識(群文件有數電電子書康華光版),Verilog基本語法(請看群文件),後面的線上課程會再通知。大家有什麼疑問可以直接在群里提出。

二、 FPGA是什麼

  FPGA(Field-ProgrammableGate Array),即現場可編程門陣列,使用Verilog HDL(Hardware Description Language)進行描述,FPGA可以理解為把數字電路的元器件都集成到FPGA晶元內部,與門、或門、選擇器、D觸發器。實際上它內部構造是用FPGA利用小型查找表(LUT)來實現組合邏輯,每個查找表連接到一個D觸發器的輸入端,觸發器再來驅動其他邏輯電路或驅動I/O(input/output),由此構成了既可實現組合邏輯功能又可實現時序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。

圖 - LUT實現原理圖

圖 – D觸發器

         總的來說,它是利用verilogHDL硬體描述語言來描述數字電路,你所寫的代碼,映射到板子上實際上就是一些數字電路。

         FPGA公司主要是兩個Xilinx和Altera(現intel PSG),我們目前用的ISE是Xilinx的開發套件,現在ISE更新到14.7已經不更新了,換成了另一款開發套件Vivado,也是Xilinx的產品,intel的開發套件是Quartus II系列,我們實驗室這兩款公司的開發板都有,不用對於入門來說,選擇ISE有兩個原因,一是它比Vivado快多了,二是它和Quartus II相比不用自己寫測試文件(激勵)。實驗室的板子這兩個公司都有,代碼都是可以移植的,學習的話都要學的,軟體不是問題,重點是FPGA的設計思想。

三、 FPGA與單片機的區別

  對於單片機和FPGA的主要區別。單片機可以理解為跑程式的微型電腦,麻雀雖小五臟俱全,所以寫的代碼相當於程式,應該屬於軟體範疇。單片機寫出來程式,用編譯器編譯後實際上是一條條指令(MIPS指令),控制單片機去控制它的外圍器件。

FPGA則應該理解為可編程的數字邏輯電路集成晶元,所以寫的代碼其實是在描繪一個數字邏輯電路。

兩者最大的區別應該是在速度上的區別,FPGA內部是並行的,所有的電路邏輯都是在同一個時鐘觸發下工作的,而單片機屬於單線程,內部屬於順序執行,一個執行完了再執行下一個。速度肯定要慢。

  FPGA主要用於通信、圖像處理等領域,ASIC的設計驗證,就在去年到今年還有一個新的領域AI,用FPGA加速深度學習演算法,BAT也都部署了FPGA雲伺服器。因為其速度快的優點,所以用來處理數字信號是所擅長的。最經典的是2008年北京奧運會開幕式的畫捲顯示屏用的就是Altera Cyclone II FPGA驅動的。

在初學FPGA的時候容易的是把VerilogHDL當C語言來寫,把FPGA但單片機來用。寫的代碼不能稱之為程式,應該稱之為代碼,以區別和軟體的不同。

圖 – CPU與FPGA

四、 一位全加器的設計

需要基礎知識:二進位的加法運算、真值表、卡諾圖、Verilog HDL基本語法

1 + 1 =1 0; 1 + 0 = 1; 0 + 0 = 0;

全加器(Full Adder)

圖 - 一位全加器真值表

上圖是數電書上的全加器真值表,下圖是我自己畫的。

A和B為兩個加數,CI表示低位向本位的進位,CO本位向高位的進位。我們在這裡設計中用不到CI,設計超前進位加法器會用到。所以看右邊的圖就可以了。

Verilog有四種描述風格:晶體開關級描述風格、門級描述風格、數據流風格、行為級描述風格。

開關級描述風格太老我們不學。門級描述風格也太原始,交給你們數電老師去教。數據流描述風格雖然不常用,但是為了更加深刻理解組合邏輯的設計,所以後續課程在進行講解。今天我們就用最簡單,最迅捷的行為級描述來描述這一個一位加法器。

 

五、 ISE14.7使用流程

  1. FPGA創新小組納新公開課class1:百度雲鏈接:http://pan.baidu.com/s/1bpAgmtD  密碼:psx2

視頻中有詳解

  1. ISE14.7與Notepad++級聯:http://www.cnblogs.com/ninghechuan/p/6172237.html

  2. 註意

(1)      Wire型數據只能能在assign語句里賦值

(2)Reg型數據只能在initial塊,always塊,for賦值

六、 課後練習

  1. 重新新建一個工程,自主設計一個四位全加器,要求有模擬。最終將工程打包發送至我的郵箱[email protected],可以編寫一份文檔對設計進行概述和說明,附加學習心得和感想

七、 你能得到什麼

  1. 首先是提高動手能力,很多東西自己動手做一遍和你從課本上學理論的感受是不一樣的。

  2. 我們實驗室每年都會組織參加各類電子競賽,增強項目實踐能力。

  3. 增加考研就業競爭力,

  4. 實驗室有空調,有空調,空調,調。

 

轉載請註明出處:NingHeChuan(寧河川)

個人微信訂閱號:NingHeChuan

如果你想及時收到個人撰寫的博文推送,可以掃描左邊二維碼(或者長按識別二維碼)關註個人微信訂閱號

知乎ID:NingHeChuan

微博ID:NingHeChuan

原文地址:http://www.cnblogs.com/ninghechuan/p/7171791.html 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. 下載WebUploader 2. 將下載到的壓縮包裡面的文件複製到自己的項目中 3. 添加引用 4.準備一個放圖片的容器和一個上傳按鈕 5.創建Web Uploader實例並監聽事件 6 在Controller里新建一個Action用於保存圖片並返回圖片路徑(這方法是 eflay 前輩博客上說 ...
  • 1、前言 前面第一篇闡述了採用基於.NET CORE微服務架構,應用surging服務端與客戶端之間進行通信的簡單示例以及對於surging服務化框架簡單介紹。在這篇文章中,我們將剝析surging的架構思想。 surging源碼下載 2、通信機制 2.1 簡介 在單體應用中,模塊之間的調用通信通過 ...
  • using System; using System.Collections.Generic; using System.Web; namespace Zhong.Core { /// /// Cookie操作類 /// public class CookieHelper { private sta... ...
  • 引用相等性和值相等性 在 C# 中,相等性分為引用相等性和值相等性。引用相等性是指,若兩個引用類型的變數引用的是同一個對象,則它們具有引用相等性。 // x, y, z 都是引用類型變數 object x = new object(); object y = new object(); object ...
  • 頭文件:#include <algorithm>using namespace std;1.預設的sort函數是按升序排。對應於1)sort(a,a+n); //兩個參數分別為待排序數組的首地址和尾地址2.可以自己寫一個cmp函數,按特定意圖進行排序。對應於2)例如:int cmp( const i ...
  • 本文選自 http://www.cnblogs.com/lhws/archive/2012/03/15/2397952.html ...
  • Windows的畫圖板相信很多人都用過,這次我們就來講講Java版本的簡易畫板的實現。 Windows的畫圖板相信很多人都用過,這次我們就來講講Java版本的簡易畫板的實現。 基本的思路是這樣的:畫板實現大致分三部分:一是畫板界面的實現,二是畫板的監聽以及畫圖的實現,三是畫板的重繪。(文章較長,但是 ...
  • 重寫 equals(Object obj) 方法 equals() 方法是 Object 基類中實現的基本方法之一,用於 自定義對象的判等規則 。 1. Object 類中的 equals() 方法 2. 自定義 euqals() 方法 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...