新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > FPGA設計方案

FPGA設計方案

作者: 時間:2012-05-14 來源:網(wǎng)絡 收藏

隨著社會的發(fā)展和信息時代對各類信息快速發(fā)布的需要, 許多政府部門和企事業(yè)單位從提高自身形象和信息規(guī)范化管理考慮, 廣泛采用LED 電子顯示屏顯示產品, 此類多媒體顯示系統(tǒng)通過一定的控制方式,用于顯示文字、圖形、圖像、動畫、股市行情等各種信息以及電視、錄像、DVD 等信號, 是交通指揮引導、部隊作戰(zhàn)、電力部門、公共場所進行企業(yè)形象宣傳、信息發(fā)布和精神文明建設的有效工具和良好窗口。

本文引用地址:http://butianyuan.cn/article/190377.htm

采用現(xiàn)場可編程邏輯器件( ) 作為控制器, 選擇合適的器件, 利用器件豐富的I/O 口、內部邏輯和連線資源, 采用自上而下的模塊化設計方法, 可以方便地設計整個顯示系統(tǒng)。

電子設計自動化(EDA)技術是基于可編程器件( PLD) 的數(shù)字電子系統(tǒng)設計, 它是進行系統(tǒng)芯片集成的新設計方法, 也正在快速地取代基于PCB 板的傳統(tǒng)設計方式。在EDA工具軟件MAX+PLUSⅡ的支持下, 本設計通過了編譯、適配和軟件仿真驗證。最后用載入真實實驗系統(tǒng)的硬件實驗證明了它的正確性。

1 系統(tǒng)結構及其原理

本設計結合上海航虹高科技公司生產的EDA實驗箱, 需要顯示的16 個字符的字模已存放在EPROM 的8000H~807FH, 采用單個8×8LED 點陣(WTD3088)顯示字符, 顯示控制由現(xiàn)場可編程門陣列( ) EPF10K20TC144- 4 來實現(xiàn)。系統(tǒng)原理是首先產生點陣字模地址, 并從存儲器讀出數(shù)據(jù)存放在16 位寄存器中, 然后輸出到LED 點陣的列, 同時對點陣列循環(huán)掃描以動態(tài)顯示數(shù)據(jù), 當需要顯示數(shù)據(jù)字模的列和被選中的列能夠協(xié)調配合起來, 就可以正確顯示字符。

2 FPGA設計及其原理

為在8×8LED 發(fā)光二極管點陣上顯示字符, 首先要把字符表示成為8×8 像素點( AD0~AD7) , 分別為按列抽取依序排列的字符像素信息, 均具有8 位字長。然后依次對多字符抽取像素信息, 并按序排隊存放于EPROM 之中, 便可得到一個待顯示數(shù)據(jù)序列。進一步通過尋址的方法來控制該數(shù)據(jù)序列的釋放過程, 就可實現(xiàn)在8×8LED發(fā)光二極管點陣上滾動顯示多個字符信息的目的。page 控制字符顯示的滾動速度, 它的取值范圍應為0~N, col 決定LED 點陣的列開關的掃描速度,它的取值范圍應為0~7.某一時刻能在顯示數(shù)據(jù)序列中定位待顯示數(shù)據(jù)的地址指針可用下式計算: addr=page+col應當注意的是, 掃描速度應遠大于滾動速度, 本設計中使用的掃描時鐘是1KHz, 字符的滾動速度是1 秒/ 個。調節(jié)字符信息的滾動速度;改變col 的重復掃描周期, 可改善在LED 點陣上顯示完整字符信息的穩(wěn)定性。

另外還需指出, 由于addr 的運算要靠硬件實現(xiàn), 故地址指針addr的模應取為N, 而且為實現(xiàn)全部字符信息滾過LED 點陣, 必須在數(shù)據(jù)N前補充8 個空數(shù)據(jù)字節(jié)。根據(jù)其工作原理, 設計了描述FPGA內核硬件功能的VHDL 語言程序。本設計結合了EDA實驗箱和ALTERA公司的MAX+PLUSⅡ研發(fā)工具, 并采取了行為的描述方式。

VHDL程序如下:

libraryieee;

use ieee.s td_logic_1164.all;

use ieee.s td_logic_arith.all;

use ieee.s td_logic_uns igned.all;

entityledis

port (clk1,clk2,reset: ins td_logic;

led_s: out s td_logic_vector(2downto0);

memcs,rd,wr,cs0809,sELmled:out s td_logic;

a: out s td_logic_vector(15downto0);

ad: out s td_logic_vector(7downto0));

end;

architecture led_archofledis

s ignalcol:integerrange 0to7;

s ignalpage :integerrange 0to15;

s ignaloe:s td_logic;

begin

proces s(clk2,reset,col)

begin

ifreset=1 then

col=0;

els if(clk2event andclk2=1)then

col=col+1;

endif;


上一頁 1 2 下一頁

關鍵詞: FPGA 設計方案

評論


相關推薦

技術專區(qū)

關閉