第十五章 終於有了——基於FPGA的C2Mif軟體設計以及VGA應用

來源:互聯網
上載者:User
第十五章 終於有了——基於FPGA的C2Mif軟體設計以及VGA應用一、Mif檔案概述

徘徊了很久,mif檔案的設計以及應用,到底要不要講呢?Bingo自己也拿不定主意。寫了那麼多,有點累了的説。

最後咬咬牙還是寫了,因為這東西沒人寫過,所以我要寫,不走尋常路,就我來開闢這一條道路,讓FPGA中 Mif檔案應用軟體設計以及應用從此定格,同時也希望初學的你,不再那麼鬱悶。

Mif檔案在FPGA中的應用,主要是在RAM,ROM中,一般用來儲存字模、波形資料、訊號採樣、資料序列等,可以看做是C語言中的數組,用來儲存資料。Bingo當年也是鬱悶的很啊,當年做電子琴,在Quartus II Memory Initialzation File 也手動寫過曲譜的mif檔案。眼睛都花了;曾經做過波形發生器,有康芯的Guagle的支援,很方便;對於VGA字元圖片顯示,字模資料的龐大,Bingo最後通過C語言,根據mif格式,設計了軟體,今天定格。

由於當年項目中遇到過資料量的尷尬,草草的設計了C語言轉換程式。Bingo當年就設計過C語言的C2Mif檔案轉碼,博文地址如下:

http://www.cnblogs.com/crazybingo/archive/2010/08/02/1790151.html

本章中Bingo將mif檔案的介紹,mif軟體的設計,mif檔案的應用詳細介紹於此,從此mif檔案的各種嘰歪告一段落。

二、Mif轉換軟體介紹1. 康芯Guagle軟體

:http://www.chinaaet.com/lib/detail.aspx?id=86667

這是國內杭州康芯公司設計的波形資料產生器的mif轉換軟體。該軟體主要應用在波形資料的產生,能產生正弦波、方波、三角波、鋸齒波等波形的mif檔案,長度寬度可以GUI調節,在做波形發生器的時候,用該軟體產生很方便,可以消除matlab或者c語言帶來的繁瑣了。

為軟體調節,輸出mif介面,此軟體使用方便,輕巧便捷。

2. 國外MIFGEN軟體

此軟體是國外牛逼人士設計的,也是波形資料的產生軟體,個人覺得沒有國產康芯Guagle那麼好用,因此一筆帶過,不做詳細介紹。

3. Bingo版的C2Mif 軟體

(1)C2Mif Bingo寫此軟體的目的

由於FPGA設計中,Mif檔案的編輯轉換,沒有官方的軟體(QII手動輸入的不算)。於此很多不便,Bingo當年用VC編寫過轉換軟體,在DOS視窗下轉換多有不便。糾結了很久,求人不如求己,終於在最近狠狠心看VB,想把將己當年設計的底層C語言轉換程式,沒想到現學現賣,一天搞定,軟體出此雛形,山寨版GUI平台,152K ,壓縮後只有35K的Mini Software閃亮登場,VB是個好東西啊。O(∩_∩)O哈哈~

Bingo版的C2Mif Rev 1.0 Mif轉換軟體,今天正式發布。本軟體由Bingo個人編寫,尊重著作權,同時又尊重國人,本不需要序號,不需要註冊,不需要破解,永久性免費使用,可以任意傳播,希望能夠業界人士帶來方便。O(∩_∩)O哈哈~

本軟體雛形出爐,加上Bingo一直搞硬體,軟體思維薄弱,多少會有bug。試用者若發現軟體存在bug,或者有更完美的建議、方案,歡迎聯絡Bingo:hanbinhdu@foxmail.com,軟體將會持續修複、不斷更新,讓您更滿意。

(2)C2Mif 關於資訊

****************************************************************

* C2Mif,感謝您的使用

* 著作權(C)2011-Endless CrazyBingo

* 若有好的建議或Bug歡迎聯絡本人

* 以下是編者資訊:

* 作者: 韓彬

* 網名: Crazy Bingo

* 部落格: http://home.cnblogs.com/crazybingo/

* http://blog.chinaaet.com/

* 微博: http://weibo.com/crazybingo

* 郵箱: hanbinhdu@foxmail.com

* All Rights Reserved: 杭電 無線電愛好者協會

* 軟體版本: REV 1.0

* 原創日期: 2011-08-05

* 修改日期: 2011-XX-XX

****************************************************************

(3)C2Mif 協助資訊

****************************************************************

一、待轉換的資料來源提取

(1)Microsoft Visual C++、Matlab或者其他軟體產生資料,直接複製進C2Mif編輯視窗。

(2)字模提取軟體的搭配使用,用C2Mif的檔案開啟功能,來讀取txt的資料。

(3)少量資料的時候,可以直接手動輸入C2Mif編輯視窗。

****************************************************************

二、C2Mif軟體的使用

本軟體允許"16進位"格式或者"二進位"格式的資料或者文本的輸入,通過軟體的選擇,輸出使用者需求的位元的Mif檔案。

但由於某些因素,目前本軟體無法將16進位直接轉換為二進位進行相關操作,Bingo覺得也沒必要,在此表示歉意。

****************************************************************

對於文本的輸入,需要遵循固定的格式,如下

(1)軟體已經通過識別轉換,可以在任意位置包含空格“ ”。

(2)軟體已經通過識別轉換,可以在任意位置包含逗號“,”。

(3)軟體已經通過識別轉換,可以在任意位置包含逗號“;”

(4)軟體已經通過識別轉換,可以在任意位置包含逗號“0x”。

(5)軟體已經通過識別轉換,可以在任意位置包含逗號“{”。

(6)軟體已經通過識別轉換,可以在任意位置包含逗號“}”。

(7)軟體已經通過識別轉換,可以包含斷行符號。

(8)您可以在任意位置輸入","、";"、空格、斷行符號、"0x"、"{"、"}"等字元提高資料的可讀性,軟體會自動進行選擇性提取。除以上七種字元以外,任何有效資料以外的字元,都需要手動刪除,軟體無法做到如此的智能,因此某些字模提取軟體中產生的 “/*"靜"*/”、“const char Hzk[][24]=”, 此類資訊需要手動刪除。如果您提取的內容比較多,建議用Notepad++配合調整結構,Notepad++具有列操作功能(Ctrl+滑鼠縱向選擇)。

(4)C2Mif 相關下載

****************************************************************

C2Mif v1.0
著作權(C)2011-Endless CrazyBingo
All Rights Reserved: 杭電 無線電愛好者協會

****************************************************************
由於FPGA中尤其是液晶或者資料處理中,經常用到Mif檔案,目前還沒有轉換此類檔案的軟體,Bingo根據大致的需求編寫了此軟體,希望對您有用。

****************************************************************

關於C2Mif V1.0 軟體的下載

http://www.chinaaet.com/lib/detail.aspx?id=86810

****************************************************************
關於PC2LCD2002軟體的
http://www.chinaaet.com/lib/detail.aspx?id=86669

****************************************************************
關於C2Mif軟體的轉換及使用教程,請看以下網址:
http://blog.chinaaet.com/detail/21782.html
http://www.cnblogs.com/crazybingo/archive/2011/08/10/2134185.html

****************************************************************
關於VB的學習,《VB從入門到精通》,請看以下網址:
http://www.chinaaet.com/lib/detail.aspx?id=86805

****************************************************************
關於VB的串口常式學習,對初學者代碼會有協助,請看以下網址:
http://www.chinaaet.com/lib/detail.aspx?id=86806

****************************************************************
鄙人雅作於此,僅希望對同道中人有助,謝謝!

三、Mif軟體使用步驟

本節中,Bingo利用PCtoLCD2002,C2Mif這兩款軟體協調,來完成各種字模或者圖片字模的提取,同時轉換為對應的mif檔案。

PCtoLCD2002為優秀的字模提取軟體,能對不同字型,不同格式的字型,圖片等進行編輯,並且輸出C51或者A51的語言,同時能夠儲存為各種格式的16進位字模,設定方便。

PCtoLCD2002為:http://www.chinaaet.com/lib/detail.aspx?id=86669

1、PCtoLCD2002字模提取

(1)首先,選擇字元模式(預設)

(2)制定字模選項,適配各種格式,如下

上文中對於C2Mif軟體資料格式中的說明:可以在任意位置輸入","、";"、空格、斷行符號、"0x"、"{"、"}"等字元提高資料的可讀性,軟體會自動進行選擇性提取。因此比較靈活,軟體會自動做處理。

只是針對於PC2LCD2002軟體的選項設定,相應輸出的最簡格式,當然只要符合資料格式即可,此處不必糾結。

(3)設定點陣16*16,輸入要提取字模的內容,如下:

(4)軟體顯示出來的介面,如下:

(5)產生字模,如下所示:

(6)儲存字模,並用Notepad++開啟,刪除注釋部分不需要的資訊

由於C2Mif軟體只能識別","、";"、空格、斷行符號、"0x"、"{"、"}"這些字元,因此注釋部分以及檔案頭刪除。如下兩圖只要刪除第一行以及字模右邊的注釋即可,別的字元:","、";"、空格、斷行符號、"0x"、"{"、"}",軟體會自動識別處理,您可以隨意設定;因此格式,本軟體也適合別的字模提取軟體,只要稍微改一下格式即可。

2、C2Mif使用

此處我們要得到16位的Mif檔案,設定步驟如下:

(1)開啟軟體,點擊“開啟”,選擇前面產生並且修改好的字模的txt

(2)軟體已經預設選擇16進位,請選擇在下拉框中選擇4位16進位資料,點擊"C2Mif一鍵轉換",如下:

(3)去案頭尋找CrazyBingo.mif,用Notepad++開啟如下:

(4)搞定,mif檔案可以直接在Quartus II 中應用了。如下用Quartus II 開啟的產生的CrazyBingo.mif格式檔案。

四、項目執行個體

用三中的介紹,產生各種字元,漢字的字模的mif,如下分別是ASCII的mif以及“無線電愛好者協會”的mif檔案。

前面一張講過VGA的顯示驅動,通過這一章,FPGA+VGA,其實也可以當做記事本來用。只要修改mif檔案便可以修改VGA顯示的內容。而mif的產生,至此應該灰常的簡單了。

本節重點介紹簡單的介紹“無線電愛好者協會”這幾個字的顯示,ASCII碼的顯示雷同,不做累贅的說明。

關於代碼的下載,請見

項目比較大,而且是一年多前寫的,格式不是很嚴謹,而且沒有按照Bingo前一章的格式來寫請見諒。項目是從邏輯分析儀的工程修改的,主要實現了1024*768解析度下,內容的顯示以及定時器的功能,VGA驅動代碼模組請見上一章,此工程主要檔案HSU_Time_Disp.v,看懂了此檔案便能夠很好的應用mif之類的檔案了。VGA的顯示驅動,其實就那麼一回事。

1. 產生mif

利用三種介紹的方法,提取64*64的“無線電愛好者協會”這幾個的字模,並產生mif檔案。詳細介紹請見上文。

2. 建立工程

根據前一章的vga_panel_design模組,來定製工程。略。

3. 修改vga_display.v

(1)Rom的調用,地區的定位

如上所示,把256<Y_pos<384的地區定位顯示內容的地區;例化wireless_ROM,地址為X_pos[9:1],相當於讓座標隨著X軸地址第二位的變化而變化,達到了擴大一倍的目的。

(3)字元的顯示

細心的讀者應該會發現,前一節中PCtoLCD2002設定格式的地方,我們用了“逐行式”的格式來提取字模。這樣做是為了代碼上的方便:

a) 由於每一列都單獨成為一個資料,資料的輸出只要根據Y軸座標的變化即可,方便軟體設計。

b) 每一個rom地址對應X軸地址,這樣更方便的位移。

注意:如,Y_pos[6:1]而不是Y_pos[5:0],相當於讓座標隨著Y軸地址第二位的變化而變化,達到了擴大一倍的目的。

4. 項目

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.