[FPGA 學習記錄] 快速開發的法寶——IP核

快速開發的法寶——IP核

文章目錄

  • 1 IP 核是什么
  • 2 為什么要使用 IP 核
  • 3 IP 核的存在形式
  • 4 IP 核的缺點
  • 5 Quartus II 軟件下 IP 核的調用
  • 6 Altera IP 核的分類

在本小節當中,我們來學習一下 IP 核的相關知識。

IP 核在 FPGA 開發當中應用十分廣泛,它被稱為快速開發的法寶。在本小節當中,我們將和各位朋友一起來學習了解 IP 核的相關知識、理解掌握 IP 核的調用方法。

我們分為以下幾個部分進行 IP 核的學習

  1. 首先是第一部分:IP 核是什么。在這一部分,我們會對 IP 核的基本概念做一個解析
  2. 第二部分是:為什么要使用 IP 核。在這一部分會告訴大家 IP 核的一個使用目的
  3. 第三部分是:IP 核的存在形式,也就是 IP 核的一個分類
  4. 第四部分是:IP 核的缺點。事物的存在有利也有弊,IP 核也不例外。這一部分會講解一下:IP 核使用的一個局限性
  5. 第五部分就是:Quartus II 軟件下 IP 核的一個調用。在這一部分會帶領各位朋友,了解如何在 Quartus II 軟件下調用 IP 核
  6. 第六部分是 Altera IP 核的一個分類。這部分內容的講解目的是方便各位朋友,在以后的使用過程中能夠快速準確的調用 IP 核

首先是第一部分內容的講解:IP 核是什么?

1 IP 核是什么

IP 是一個英文(首字母縮寫)簡稱,英文全稱是:Intllectual Property,譯為中文就是知識產權。在半導體產業中將 IP 核定義為:用于 ASIC 或者 FPGA 中預先設計好的電路功能模塊;換句話說:IP 就是指電路功能模塊。

在數字電路當中,我們將常用的而且比較復雜的功能模塊設計成參數可修改的模塊。比如說后面常用到的 FIFO、RAM,還有 SDRAM 控制器;這些常用的而且比較復雜的功能模塊設計成參數可修改的模塊,在使用過程中其他用戶可以直接調用這些模塊,這個就是 IP 核。

現在了解了 IP 核的概念之后,我們進入下一個問題:為什么要使用 IP 核?

2 為什么要使用 IP 核

隨著科技的進步、IC 工藝的提高,FPGA 的規模越來越大;隨著 FPGA 的規模越來越大,FPGA 的設計也是越來越復雜;IC 的復雜度每年以 55% 的速率提高,而我們的設計能力每年只提高 20% 左右;我們設計者的主要任務,是在規定的時間周期內完成一個復雜的設計,但是 IC 復雜度遞增的速率大于我們設計能力的提高,這樣就使得設計者需要的設計周期就越來越長,這樣不利于產品的一個上市;為了解決這個問題,將一些在數字電路中常用的但是比較復雜的功能塊,比如說前面提到的 FIFO、RAM、SDRAM 控制器設計成可修改的參數模塊,就是前面提到的 IP 核,然后在開發過程中使用 IP 核,這樣就可以避免重復勞動、提高開發效率、減少設計和調試的時間,加速開發進程、降低開發成本,這樣也大大縮短了產品上市時間、減輕了工程師的一個負擔,也是業內的一個發展趨勢。這就是我們使用 IP 核開發的一個目的。

了解了 IP 核的概念以及使用目的之后,我們進入第三部分:IP 核的一個存在形式,就是它的分類

3 IP 核的存在形式

IP 核根據產品交付的方式進行分類,有三種不同的存在形式,分別對應我們常說的三類 IP 內核,這三種 IP 內核實現的方法也是各具特色

  1. HDL 語言形式–>軟核

    軟核也稱為軟 IP,它通常是以硬件描述語言 HDL 源文件的形式出現,它的應用開發過程與普通的 HDL 設計也是十分的相似,大多數應用于 FPGA 的 IP 內核均是軟核。軟核有助于用戶調節參數并增強可復用性,就是說它可以進行參數的調整(復用性強);軟核通常是以加密的形式提供,實際的用戶是看不到內部的 RTL 代碼的,但是它的布局布線是十分靈活的;在這些加密的軟核當中如果對內核進行了參數化,用戶就可以通過頭文件或者說 GUI 圖形界面對參數進行一個設置。軟核它的設計周期短、設計投入少,軟核由于不涉及物理實現,為后續設計留有很大的發揮空間,增大了 IP 核的一個靈活性和適應性。

    同時,軟核也是有缺點的。軟核是以源代碼的形式提供,盡管源代碼可以采用加密的方法,但是它的知識產權保護的問題仍然不容忽視。

  2. 網表形式–>固核

    固核是軟核與硬核的一個折中,固核是完成了綜合的功能塊,它有較大的設計深度。對于那些對時序要求十分嚴格的內核,比如說:PCIE 接口內核,對于這種時序要求比較嚴格的內核,它可以預布線特定信號,或者說分配特定的一個布線資源,目的是滿足這些內核的時序要求。

    固核也是有缺點的:如果說固核它有固定的布局或者部分固定的布局,在使用過程中會影響其他電路的一個布局,這是它的一個缺點。

  3. 版圖形式–>硬核

    硬核是完整提供設計的最終階段產品——掩膜,硬核是以經過完全的布局布線的網表形式提供,這種硬核既具有可預見性,同時還可以針對特定的工藝或者說購買商進行功耗和尺寸的一個優化。

    但是它缺乏靈活性、可移植性較差;但是,它不存在 RTL 文件,更易于實現 IP 核的一個保護。

事物的存在有利也有弊,IP 核在擁有眾多的優點的同時,它也存在巨大的缺點

4 IP 核的缺點

我們來看一下 IP 核的缺點

  1. 首先第一點:IP 核往往不能跨平臺使用。這句話什么意思呢?每個 FPGA 開發廠商會根據自己的芯片適配定制的 IP,如果說你之前使用的是賽靈思的芯片,使用了其中的一個 IP 核,但是因為某些原因,你需要將這個代碼移植到 Altera 平臺上,就必須在 Altera 平臺上選擇具有相同功能的 IP 核,進行一個替換,否則你就不能使用,這樣就增加了代碼移植的一個復雜性。
  2. IP 核的第二條缺點是:IP 核不透明,看不到內部的核心代碼。IP 核相當于一個黑匣子,它是不透明的,我們只能看到輸入信號和輸出信號,內部的核心代碼是看不到的;因為 IP 核都是各大 FPGA 廠商專門設計的,都會進行一個加密,內部的核心代碼是看不到的。如果說我們在使用過程中,想要根據實際的應用進行一個優化,這是不可能的;因為我們是無法進行修改的。這個問題在使用過程中就很棘手
  3. IP 核的第三個缺點就是:定制的 IP 需要額外收費。我們平時使用的一些具有簡單功能的 IP 核是 FPGA 廠商提供的,是免費的;但是說,如果你想要使用某些能夠實現特殊功能的 IP 核,需要進行一個額外收費。

IP 核在能夠縮短我們開發周期的情況下存在以上三個問題。這時候我們就需要權衡利弊,針對具體的需求來做一個具體的選擇。

下面我們講解第五部分:在 Quartus II 開發軟件下進行 IP 核的一個調用

5 Quartus II 軟件下 IP 核的調用

在 Quartus II 開發軟件下進行 IP 核的調用有四種方式

  1. 第一種是 Mega Wizard 的插件管理器
  2. 第二種是 SOPC 構造器
  3. 第三種是 DSP 構造器
  4. 第四種是 Qsys 設計系統例化

在這四種方式中,后兩種方式(DSP 構造器、Qsys 設計系統例化)它們僅支持部分的一個 IP 核的例化和使用,最為常用的 IP 核的調用方式是第一種:使用插件管理器的調用方式
Mega Wizard 插件管理器它可以用于創建和修改包含定制 IP 核的一個設計文件,然后在設計文件中例化 IP 核;可以自動生成設計文件、例化模板以及例化聲明文件;使用這個插件管理器,可以指定 IP 核的不同選項,包括設置參數值、選擇可選端口;還可以為第三方綜合工具生成網表文件(第三方的 IP 核是以網表文件的形式進行提供的)。

說了這么多,下面就和各位朋友一起學習使用插件管理器進行一個 IP 核的調用。

我們回到桌面,然后打開 Quartus II 開發軟件,關閉開發軟件的啟動頁

image-20231206101736665

第一步就是啟動 Mega Wizard 插件管理器:選擇 Tools–>MegaWizard Plug-In Manager

image-20231206102053569

彈出了一個 Mega Wizard 插件管理器的選擇頁面

image-20231206102507483

其中有三個選項

  1. Create a new custom megafunction variation:創建一個新的 IP 核
  2. Edit an existing custom megafunction variation:編輯已經存在的 IP 核
  3. Copy an existing custom megafunction variation:復制已經存在的 IP 核

我們這兒選擇第一個:創建一個新的 IP 核,然后點擊下一步

image-20231206103003465

然后就到了 2a 頁面

image-20231206103125427

首先第一步要選擇右上角的位置,選擇我們的 FPGA 芯片屬于哪個系列;因為不同的器件類型,它可以使用的 IP 核是不同的;比如說我們選擇征途系列開發板使用的器件就是 Cyclone IV E 系列

image-20231206103400296

所以說這個地方要保持與工程創建時我們選擇的器件系列一致,避免出現 IP 核不支持器件的一個情況。

第二個位置要設置 IP 核輸出文件的語言類型,語言類型的設置取決于工程具體設計所使用的語言,我們使用的是 Verilog 就選擇 Verilog HDL

image-20231206103617075

第三個位置就是搜索框以及搜索框下方的列表,如果搜索框中不進行輸入,下方列表就會分類顯示出所有的 IP 核

image-20231206104022328

在這個搜索框當中輸入我們想要使用的 IP 核的名稱來進行一個 IP 核的搜索,比如說我們想要使用鎖相環的 IP 核就輸入 pll,下方列表當中就會顯示出與我們搜索 IP 核相關的一些 IP 核

image-20231206104231907

然后我們選擇使用其中一個 IP 核,選中 ALTPLL;在列表右側我們就要選擇 IP 核輸出文件的一個保存位置,這個保存位置一般都是工程文件夾

image-20231206104609952

假如說在 2a 頁面選擇完畢之后,點擊下一步就可以進行參數的一個設置,最后生成我們的 IP 核

image-20231206104649084

以上部分,就是使用 Mega Wizard 插件管理器實現 IP 核一個調用。

下面進入第六部分,就是 Altera IP 核的一個分類

6 Altera IP 核的分類

我們回到 Mega Wizard 插件管理器的 2a 頁面,然后清空搜索框,搜索框下方的 IP 核列表當中顯示的就是 Altera 提供的 IP 核

image-20231206122121483

下面就參照這個列表來對 Altera IP 核的類型做一個講解。首先是:數學運算 IP 核

image-20231206122409266

這里面包含了四個部分

  1. 第一部分就是:LPM 類型的整數運算 IP 核

    LPM 表示參數化類型 IP 核庫。LPM_ADD_SUB這個就是加法器和減法器的 IP 核、LPM COMPARE這個是比較器、LPM_COUNTER是計數器、LPM_DIVIDE是除法器、LPM_MULT是乘法器

  2. 第二部分就是:ALT 類型的整數運算 IP 核

    ALT 表示的是 Altera 特定的 IP 核。ALTMULT_ACCUM(MAC)是乘累加器、ALTMEMMULT是基于存儲的常系數乘法器、ALTMULT_ADD是它的乘加器、ALTMULT_COMPLEX是它的復數乘法器

  3. 第三部分就是:浮點數運算 IP 核

    ALTFP_ADD_SUB就是浮點數加/減法器、ALTFP_DIV是浮點數的除法器、ALTFP_MULT是浮點數的乘法器、ALTFP_SQRT就是浮點數的平方根計算器

然后就是:邏輯運算 IP 核

image-20231206145709311

LPM_CLSHIFT是循環移位、LPM_CONSTANT常數、LPM_DECODE解碼和LPM_MUX復用。

第三大類是:存儲器 IP 核

image-20231206145941021

里面有 FIFOFIFO、RAM initializerRAM:1-PORTRAM:2-PORTRAM、ROM:1-PORTROM:2-PORTROM 等等
第四大類是:數字信號處理 IP 核

image-20231206150300040

這里邊有 CIC v13.0CIC、FIR Compiler II v13.0FIR Compiler v13.0FIR 編碼器,然后還有 NC0 v13.0NCO、FFT v13.0FFT(傅里葉變換)
然后是:數字通信類的 IP 核

image-20231206150545059

這兒有 CRC Compiler v13.0CRC 編碼,還有 8B10B Encoder-Decoder v13.08B 轉 10B 的編碼譯碼器 IP 核。

下一個分類是:視頻和圖像處理 IP 核

image-20231206150836959

接下來就是:輸入輸出 IP 核

image-20231206150949454

剛才使用的 PLL(鎖相環) 也在這里面ALTPLL,然后還有 ALTLVDS_RXALTLVDS_TXLVDS 收發器的 IP 核。

下面就是:接口 IP 核

image-20231206151158421

這里面有 PCIPCI 接口、PCI ExpressPCIE 接口、SDISDI 接口,還有 Ethernet以太網的接口等等一些的接口。
最后是:FPGA 調試部分的 IP 核

image-20231206151437183

這兒有 Parallel Flash Loader并行的 Flash、Serial Flash Loader串行的 Flash,然后后面會講到的 SignalTap II Logic Analyzer在線邏輯分析儀。

除了剛剛講到的一些 IP 核的分類之外,還有一些針對部分 Altera 系列的 FPGA 應用的專用的一些 IP 核,這兒就不再進行講解了。


參考資料:

41-第二十四講-快速開發的法寶

24. 快速開發的法寶 — IP核

File:Kamehameha DB scheme.svg

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

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

相關文章

Java最全面試題專題---1、Java基礎知識(2)

筆者有七八年的面試者經驗,負責公司技術同學的社招和校招,近些年面試過三四百個技術同學,考慮接近年底這個時段,整理并更新一些以往的面試經驗,希望同學們跳槽能有個更好的工作,如有需要的同學可以關注下筆…

Jenkins安裝

環境 Ubuntu, 其他平臺查看官方文檔 步驟 安裝jdk sudo apt-get install openjdk-8-jdk 安裝Jenkins first add the key to your system wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -Then add a Jenkins apt repository …

使用Golang構建高性能網絡爬蟲

目錄 一、Golang的特點 二、構建網絡爬蟲的步驟 三、關鍵技術和注意事項 使用協程進行并發處理 使用通道進行協程間的通信 合理控制并發數和處理速度 遵守網站使用協議和法律法規 防止被網站封禁或限制訪問 優化網頁解析和數據處理 異常處理和錯誤處理 日志記錄和監控…

Flink入門之部署(二)

三種部署模式 standalone集群,會話模式部署:先啟動flink集群 web UI提交shell命令提交:bin/flink run -d -m hadoop102:8081 -c com.atguigu.flink.deployment.Flinke1_NordCount./Flink-1.0-SNAPSHOT.jar --hostname hadoop102 --port 8888 …

vmware虛擬機17 安裝macos14過程及問題處理親測

前期準備 1、可引導可虛擬機安裝的macOS Sonoma 14 ISO鏡像安裝文件 我找到得地址,下載自行解決啦 2、VMware虛擬機應用軟件 官網下載就好,搜個碼搞定 3、解鎖工具macOS Unlocker 開始安裝: 1、打開VMware軟件,新建一個系統…

API集錦:免費好用的API接口

通用文字識別OCR:多場景、多語種、高精度的整圖文字檢測和識別服務,多項指標行業領先,可識別中、英、日、韓、法、德多種語言。 二維碼識別OCR:對圖片中的二維碼、條形碼進行檢測和識別,返回存儲的文字內容。 手機號…

Bert-vits2新版本V2.1英文模型本地訓練以及中英文混合推理(mix)

中英文混合輸出是文本轉語音(TTS)項目中很常見的需求場景,尤其在技術文章或者技術視頻領域里,其中文文本中一定會夾雜著海量的英文單詞,我們當然不希望AI口播只會念中文,Bert-vits2老版本(2.0以下版本)并不支持英文訓練和推理&…

完整方案開放下載!詳解中國移動《通信網絡中量子計算應用研究報告》

8月30日,中國移動在第四屆科技周暨戰略性新興產業共創發展大會上重磅發布了《通信網絡中量子計算應用研究報告》。 玻色量子作為中國移動在光量子計算領域的唯一一家合作企業兼戰投企業,在量子計算應用于通信行業達成了深入合作,并在5G天線多…

干貨分享|300平米A級機房設計方案

本方案中XXX計算機中心機房建設工程,是XXX的數據中心,機房位于建筑的X層,計算機機房面積300㎡。采購設備以及裝修工藝主要用于XXX所屬計算機機房裝修工程。 考慮到中心機房投資大、使用周期長,而業主業務發展快,現代技…

十二 動手學深度學習v2計算機視覺 ——目標檢測

文章目錄 錨框目標檢測常用算法RCNNFast RCNNFaster RCNNSSD 單發多框檢測YOLO 錨框 一類目標檢測算法:以圖像的每個像素為中心生成不同形狀的錨框,并賦予標號,每個錨框作為一個樣本進行訓練。在預測時,使用NMS來去掉冗余的預測。…

空間地圖GIS基礎

關注微信公眾號掌握更多技術動態 --------------------------------------------------------------- 一、GIS基本概念 地理信息系統(Geographic Informaiton System, GIS)是一個可以建立、瀏覽、查詢、分析地理空間數據的軟件系統,其功能小…

利用 Python 進行數據分析實驗(六)

一、實驗目的 使用Python解決問題 二、實驗要求 自主編寫并運行代碼,按照模板要求撰寫實驗報告 三、實驗步驟 假設有兩個txt文件,內容如下: seg1.txtseg2.txt 將這兩個文件中的內容根據id(即前面的編號)合并為如下內容,并存…

Vue+ElementUI實現輸入框日期框下拉框動態展示

1.首先根據后端返回的數據格式獲取類型從而展示對應的框 // fieIdName label名字 // fieIdType 類型 1和4是輸入框 2日期框 3日期時間框 5下拉框 // isRequired 1必填 0不必填 // fieIdTypeRange 存放一部分的下拉框的值 需要拿到數據后轉成下拉框所需要的格式這種數據…

【AI】Pytorch神經網絡分類初探

Pytorch神經網絡分類初探 1.數據準備 環境采用之前創建的Anaconda虛擬環境pytorch,為了方便查看每一步的返回值,可以使用Jupyter Notebook來進行開發。首先把需要的包導入進來 import torch from torch import nn from torch.utils.data import DataL…

【RHCE】openlab搭建web網站

網站需求: 1、基于域名 www.openlab.com 可以訪問網站內容為 welcome to openlab!!! 增加映射 [rootlocalhost ~]# vim /etc/hosts 創建網頁 [rootlocalhost ~]# mkdir -p /www/openlab [rootlocalhost ~]# echo welcome to openlab > /www/openlab/index.h…

利用法線貼圖渲染逼真的3D老虎模型

在線工具推薦: 3D數字孿生場景編輯器 - GLTF/GLB材質紋理編輯器 - 3D模型在線轉換 - Three.js AI自動紋理開發包 - YOLO 虛幻合成數據生成器 - 三維模型預覽圖生成器 - 3D模型語義搜索引擎 當談到游戲角色的3D模型風格時,有幾種不同的風格&#xf…

傅里葉變換在圖像中的應用

1.圖像增強與圖像去噪 絕大部分噪音都是圖像的高頻分量,通過低通濾波器來濾除高頻——噪聲; 邊緣也是圖像的高頻分量,可以通過添加高頻分量來增強原始圖像的邊緣; 2.圖像分割之邊緣檢測 提取圖像高頻分量 3.圖像特征提取: 形狀特…

3-Mybatis

文章目錄 Mybatis概述什么是Mybatis?Mybatis導入知識補充數據持久化持久層 第一個Mybatis程序:數據的增刪改查查創建環境編寫代碼1、目錄結構2、核心配置文件:resources/mybatis-config.xml3、mybatis工具類:Utils/MybatisUtils4、…

ALNS的MDP模型| 還沒整理完12-08

有好幾篇論文已經這樣做了,先擺出一篇,然后再慢慢更新 第一篇 該篇論文提出了一種稱為深增強ALNS(DR-ALNS)的方法,它利用DRL選擇最有效的破壞和修復運營商,配置破壞嚴重性參數施加在破壞算子上&#xff0c…

請簡要介紹一下HTML的發展史?

問題:什么是池化思想? 回答: 池化思想是一種資源管理的策略,通過事先創建并維護一組已經初始化好的資源對象池,以便在需要時快速獲取資源并在用完后歸還給池,以減少資源的創建和銷毀開銷,提高資…