第十一章 VGA顯示圖片(還不會)

FPGA至簡設計實例



前言


一、項目背景

1. IP核概述

        IP 核(Intellectual Property core)指的是知識產權核或知識產權模塊,其是具有特定電路功能的硬件描述語言程序,在EDA技術開發中具有十分重要的地位。美國著名的Dataquest咨詢公司將 半導體產業的IP定義為“用于ASIC或FPGA中的預先設計好的電路功能模塊”。

        在數字電路中IP(知識產權)核非常常用,其將FIR濾波器、SDRAM控制器、PCI接口等比 較復雜的功能模塊設計成可修改參數的模塊,這些模塊會像應用程序一樣公開給設計者們使用。在進 行復雜的工程中如果需要這些技術,設計者就可以調用對應IP 核后補充工程所需參數,就可將其運 用到設計中。隨著CPLD/FPGA的規模越來越大,設計也變得越來越復雜,設計者的主要任務則是在 規定的時間周期內完成復雜的設計。而IP核的調用可以避免重復勞動,從而大大減輕工程師的負擔, 因此使用IP核成為了一大發展趨勢,與此同時,IP核的重用大大縮短了產品上市時間。

        利用IP核設計的電子系統具有引用方便的特點且很易于修改基本元件的功能。一般來說,具有 復雜功能和商業價值的IP核具有知識產權,盡管目前IP核的市場活動還不規范,但是仍有許多集成 電路設計公司從事IP核的設計、開發和營銷工作。

         IP 核具有三種不同的存在形式:HDL語言形式,網表形式、版圖形式。IP內核可以在不同的硬 件描述級實現,由此產生了三類IP 內核:軟核、固核和硬核。這種分類主要依據產品交付的方式, 而這三種IP內核實現方法也各具特色。

        軟核是用 VHDL 等硬件描述語言描述的功能塊,但其并不涉及用哪些具體電路元件來實現這些 功能。軟IP通常是以硬件描述語言HDL源文件的形式出現,其應用開發過程與普通HDL的設計十 分相似,只是所需的開發硬軟件環境比較昂貴。軟IP 的設計周期短,設計投入少,且不涉及物理實 現,因此為后續的設計留有較大的發揮空間,同時也增大了IP的靈活性和適應性。其主要缺點是軟I P在一定程度上使后續工序無法適應整體設計,從而需要一定程度的修正,在性能上也不可能獲得全 面的優化。軟核是以源代碼的形式提供,盡管源代碼可以采用加密方法,但其知識產權保護問題依然 不容忽視。

        硬核提供設計階段最終階段產品:掩膜。這種硬核以經過完全的布局布線的網表形式提供,既具有可預見性,同時還可以針對特定工藝或購買商進行功耗和尺寸上的優化。盡管由于缺乏靈活性而導 致硬核可移植性差,但由于其無須提供寄存器轉移級(RTL)文件,因而更易于實現IP保護。

        固核則是軟核和硬核的折中。目前應用于FPGA的IP內核大多數均為軟核,其有助于用戶調節 參數并增強可復用性。軟核通常以加密形式提供,這樣一來用戶無法獲取實際的 RTL,但其布局和 布線十分靈活。在這些加密的軟核中,如果對內核進行了參數化,那么通過頭文件或圖形用戶接口(G UI)用戶可以方便地進行參數操作。而對于那些對時序要求嚴格的內核(如PCI接口內核),可預布線特 定信號或分配特定的布線資源從而滿足其時序要求,這一部分的內核就可歸類為固核。由于內核是預 先設計的代碼模塊,其建立(setup)、保持時間和握手信號都可能是固定的,因此其它電路的設計時都 必須考慮如何與該內核正確地進行接口。如果內核具有固定布局或部分固定的布局,那么這還可能影 響其它電路的布局。

2. ROM IP核

        目前現有的大多數FPGA都有內嵌塊RAM(Block RAM),可以將其靈活地配置成單端口RAM(D PRAM,Single Port RAM)、雙端口RAM(DPRAM,Double Ports RAM)、偽雙端口RAM(Pseudo DPRAM)、CAM(Content Addressable Memory)和 FIFO 等常用的存儲結構。其實在FPGA中并沒 有專用的ROM硬件資源,實現ROM的思路是對RAM賦予初值后保持該初值。

        Altera 的器件內部提供了各種存儲器模塊(RAM、ROM 或雙口 RAM),可以在設計中使用M egaWizard Plug-In Manager,執行“Tools”后利用“MegaWizard Plug-In Manager”菜單命令來 創建所需要的存儲器模塊。此外,也可以使用 Altera 提供的宏功能模塊 LPM_ROM 來創建存儲器 模塊。每個 ROM 模塊有 clock(時鐘)、address(地址)這兩個輸入信號和一個 q(值)輸出信 號。在每個時鐘上升沿,ROM 讀出地址信號指定存儲單元中的信號值并將其輸出。ROM 內的值通 過加載 MIF (Memory Initialization File,存儲器初始化文件)來實現。

        當設計中使用了器件內部的存儲器模塊時,需要對存儲器模塊進行初始化。在 Quartus Ⅱ中, 存儲器初始化文件可以使用兩種格式:Intel Hex 格式(.hex)或 Altera 存儲器初始化格式(.mif)。 其中mif 文件是 Altera 存儲器類器件初始化的專用文件格式,文件內容為地址與值的對應表,該表 規定了存儲器單元的初始值。

        如果 ROM 要存儲的內容比較少或者很有規律,這種情況下可以執行【File】|【New?】菜單 命令,創建mif文件并編輯其內容。如果已經存在bmp格式的圖片,則可以使用本書提供的BmpTo Mif 軟件,利用現有的bmp格式圖片生成mif文件。該軟件使用方法非常簡單,但是需要注意要適當 調整原圖片的大小,這一操作可以通過Windows 自帶的畫圖程序、Photoshop 等各種圖形編輯軟件 修改實現。BmpToMif 軟件可以將 bmp 圖片轉為 mif 文件,即將黑白圖片轉換為單色mif文件,將 彩色圖片轉換為三色mif 文件,也可以將二進制文件轉為mif文件,如將中英文點陣字庫轉換為mif 文件。

3. 圖片轉成初始化文件

        上文中提到過:在創建mif 文件時,若已經存在bmp格式圖片則可以使用軟件工具BmpToMif 來將bmp的圖片轉換為mif文件。下面介紹其具體操作,BmpToMif的軟件界面如下圖所示。

        點擊打開圖片后選擇一幅bmp格式的圖片。這里需要注意的是,由于受開發板上FPGA資源的 限制,圖片的大小不能超過320*240。如果圖片大小不是320*240,建議使用“畫圖”或者“photos hop”等軟件將圖片大小更改為320*240。

         將bmp圖片轉換為mif文件的過程如下:

        1. 點擊“圖像”選項卡;

        2. 點擊“打開圖片”后選擇一幅圖片,本案例中選擇一幅大小為320*240、格式為bmp的圖片, 文件名為“mdy_logo.bmp”;

        3. 在“顏色類型”中根據需要選擇“黑白”或“彩色”,本案例中將選用黑白模式;

        4. 若為黑白圖,在“黑白選項”中選擇“黑色為1”或“白色為1”,注意如果是黑白圖片,生 成ROM要選擇字長為“1”;

        5. 若為彩色圖,在“彩色選項”中選擇“單

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

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

相關文章

浙江大學公開課|第二季|從大模型、智能體到復雜AI應用系統的構建——以產業大腦為例

大家好,我是吾鳴。 前沿回顧 吾鳴之前給大家分享過浙江大學DeepSeek系列公開課第一季,第一季一共八講,內容介紹豐富,內容之廣,看完粉絲朋友直呼浙大良心。這八講公開課名稱分別是: 第一期(上&…

Spring AOP中為所有類型通知傳遞參數的完整示例,包含詳細注釋和參數傳遞方式

以下是Spring AOP中為所有類型通知傳遞參數的完整示例,包含詳細注釋和參數傳遞方式: // 1. 目標類(被增強的類) package com.example;public class TargetService {public void doTask(String param) {System.out.println("…

【Git教程】將dev分支合并到master后,那么dev分支該如何處理

將 dev 合并到 master 后的分支狀態與操作指南 1. 合并后的分支狀態 dev 分支不會消失: Git 的 git merge 命令僅將 dev 的內容合并到 master,不會刪除 dev 分支。合并后,dev 分支仍然存在,其歷史記錄和代碼保持不變。 分支的 H…

【go】異常處理panic和recover

panic 和 recover 當然能觸發程序宕機退出的,也可以是我們自己,比如經過檢查判斷,當前環境無法達到我們程序進行的預期條件時(比如一個服務指定監聽端口被其他程序占用),可以手動觸發 panic,讓…

CSS層疊順序

介紹 在 CSS 中,元素的層疊順序決定了當多個元素重疊時(跟布局沒有完全的關系,也就是說層疊順序只會在幾個疊放元素上進行比較,而不會改變布局),哪個元素顯示在最上面,哪個元素顯示在最下面。 …

數制——FPGA

1、定點數 定點數的三種表示方式: 原碼:符號位 絕對值 表示方法 反碼:正數的反碼表示 與原碼表示一致,負數的反碼表示 除符號位,其他位全都取反 補碼:正數的補碼表示 與原碼表示一致,負數的補碼…

在用redis當中可能遇到的問題解決方案以及redis中的一些名詞解釋

在用redis當中可能遇到的問題解決方案以及redis中的一些名詞解釋 Redis篇一、緩存穿透:解決方案:緩存空數據布隆過濾器 二、緩存擊穿解決方案互斥鎖,強一致性,性能差,速度慢邏輯過期,數據不同步&#xff0c…

一文詳解QT環境搭建:Windows使用CLion配置QT開發環境

在當今的軟件開發領域,跨平臺應用的需求日益增長,Qt作為一款流行的C圖形用戶界面庫,因其強大的功能和易用性而備受開發者青睞。與此同時,CLion作為一款專為C/C打造的強大IDE,提供了豐富的特性和高效的編碼體驗。本文將…

【區塊鏈安全 | 第二十四篇】單位和全局可用變量(二)

文章目錄 單位和全局可用變量(Units and Globally Available Variables)特殊變量和函數1. 區塊和交易屬性2. ABI 編碼和解碼函數3. bytes 成員函數4. string 成員函數5. 錯誤處理6. 數學和加密函數7. 地址類型成員函數8. 與合約相關9. 類型信息 單位和全…

一種監控錄像視頻恢復的高效解決方案,從每一幀中尋找可能性

該軟件旨在恢復從監控設備中刪除或丟失的視頻。該程序經過調整以處理大多數流行供應商的閉路電視系統中使用的專有格式,并通過智能重建引擎進行了增強,能夠為監控記錄提供任何通用解決方案都無法實現的恢復結果。如果不需要持續使用該軟件,則…

網紅指路機器人是否支持環境監測功能?

嘿呀,你可知道?如今的叁仟網紅指路機器人那可太牛啦!它們可不單單局限于為行人指明方向,還紛紛兼職當起了 “環境小衛士”,為咱們的城市生活注入了前所未有的超智能便利。就拿那個依托叁仟智慧桿打造的數智指路機器人來…

Navicat導出mysql數據庫表結構說明到excel、word,單表導出方式記錄

目前只找到一張一張表導出的方式 使用information_schema傳入表名查詢 字段名根據需要自行刪減,一般保留序號、字段名、類型、說明就行 SELECT COLUMNS.ORDINAL_POSITION AS 序號, COLUMNS.COLUMN_NAME AS 字段名, COLUMNS.COLUMN_TYPE AS 類型(長度), COLUMNS.N…

MySQL主從數據庫搭建

此方案可適用于Centos 7、OpenEuler、Ubuntu操作系統。 在國產銀河麒麟V10中,虛擬機中啟動的麒麟系統使用當前方案并未遇到問題,但是在服務器上安裝時,執行到初始化時出現了找不到依賴問題(目前已解決安裝問題),后續我會繼續更新該問題解決方案。 1. 創建主、從安裝目錄…

`git commit --amend` 詳解:修改提交記錄的正確方式

文章目錄 git commit --amend 詳解:修改提交記錄的正確方式1. 修改提交信息2. 補充遺漏的文件3. 結合 --amend 進行交互式修改4. 已推送提交的修改總結 git commit --amend 詳解:修改提交記錄的正確方式 git commit --amend 用于修改最近一次的提交&…

為什么package.json里的npm和npm -v版本不一致?

這個情況出現是因為package.json里的 npm 版本和系統實際使用的 npm 版本是兩個不同的概念。讓我來解釋一下: 原因解釋 全局 npm vs 項目依賴: npm -v顯示的是系統全局安裝的 npm 版本(位于/usr/bin/npm或類似路徑)package.jso…

python系統之綜合案例:用python打造智能詩詞生成助手

不為失敗找理由,只為成功找方法。所有的不甘,因為還心存夢想,所以在你放棄之前,好好拼一把,只怕心老,不怕路長。 python系列之綜合案例 前言一、項目描述二、項目需求三、 項目實現1、開發準備2、代碼實現 …

Java常用工具算法-1--哈希算法(MD5,SHA家族,SHA-256,BLAKE2)

1、概述 哈希算法(Hash Algorithm),又稱散列算法,是一種將任意長度的輸入數據(明文)轉換為固定長度的輸出(哈希值/摘要)的數學算法。 哈希值通常被稱為摘要(Digest&…

OpenMCU(五):STM32F103時鐘樹初始化分析

概述 本文主要描述了STM32F103初始化過程系統時鐘的初始化,主要描述了系統時鐘的初始化,AHB總線時鐘,APB總線時鐘等的初始化。 硬件板卡3d圖 時鐘樹 STM32F103的時鐘樹,如下所示: 時鐘源選擇 從STM32F103的時鐘樹框圖,我們可以…

【qt】文件類(QFile)

很高興你能看到這篇文章,同時我的語雀文檔也更新了許多嵌入式系列的學習筆記希望能幫到你 : https://www.yuque.com/alive-m4b9n 目錄 QFile 主要功能QFile 操作步驟QFile 其他常用函數案例分析及實現功能一實現:打開文件并顯示功能二實現:另…

基于AT89C52單片機的輪胎壓力監測系統

點擊鏈接獲取Keil源碼與Project Backups仿真圖: https://download.csdn.net/download/qq_64505944/90545655?spm1001.2014.3001.5503 功能介紹: 采用MPX4115壓力傳感器進行輪胎壓力檢測;使用LCD液晶顯示器顯示輪胎壓力;若壓力過…