前言
在自動化領(lǐng)域,FPGA(現(xiàn)場可編程門陣列)的作用越來越重要。這些設(shè)備構(gòu)成控制單元的大腦,控制單元包含控制系統(tǒng)各種功能的邏輯。
從環(huán)境中收集信息的不同傳感器信號被傳遞到FPGA,并驅(qū)動必要的控制輸出。隨著系統(tǒng)復(fù)雜性的增加,迫切需要對各種輸入和輸出條件下的電路行為有一個全面了解。
SaberRD是一款綜合仿真軟件,可以虛擬設(shè)計(jì)和驗(yàn)證任何與電氣系統(tǒng)有關(guān)的東西。健壯的仿真引擎為模擬和混合信號系統(tǒng)提供了可靠的資源。該仿真器支持VHDL-AMS,它是IEEE標(biāo)準(zhǔn)VHDL語言的擴(kuò)展,主要用于FPGA和其他數(shù)字系統(tǒng)的建模。
此設(shè)計(jì)示例演示了在SaberRD中包含F(xiàn)PGA的系統(tǒng)仿真。該設(shè)備使用VHDL語言建模,系統(tǒng)仿真的目的是為監(jiān)視器提供適當(dāng)?shù)男盘?,系統(tǒng)通過VGA接口將八種顏色的視頻發(fā)送到顯示器。
VGA顯示系統(tǒng)介紹
當(dāng)今的系統(tǒng)變得越來越復(fù)雜,必須針對所有可能的組合對系統(tǒng)進(jìn)行分析。以下分別說明示例系統(tǒng)的詳細(xì)信息。
1、 數(shù)字系統(tǒng)仿真
數(shù)字系統(tǒng)由以離散步長改變信號狀態(tài)的代碼組成。FPGA是數(shù)字系統(tǒng),它接收數(shù)字輸入并根據(jù)設(shè)備上編程的邏輯提供數(shù)字輸出。來自各種外設(shè)(例如傳感器和驅(qū)動器)的信息通常是模擬性質(zhì)的,使用模數(shù)轉(zhuǎn)換器將信息傳輸?shù)紽PGA。同樣,F(xiàn)PGA的輸出通過接口將數(shù)字信號轉(zhuǎn)換為有意義的輸出。
此類設(shè)備可以使用VHDL語言輕松建模。隨著仿真需求的增加,大多數(shù)設(shè)備制造商通常會在組件上附帶VHDL或其他仿真模型,以便設(shè)計(jì)工程師可以在原型構(gòu)建過程之前仿真完整的行為。SaberRD支持VHDL-AMS語言,它是VHDL語言的混合信號擴(kuò)展。因此,這些模型可以很容易地用于仿真使用這些FPGA或其他數(shù)字系統(tǒng)的系統(tǒng)。
2、 VGA顯示系統(tǒng)
在本設(shè)計(jì)示例中,VGA 顯示由 FPGA的三位數(shù)字輸出構(gòu)成。數(shù)字輸出由兩個模塊實(shí)現(xiàn),如圖 1所示。第一個產(chǎn)生水平和垂直同步信號的模塊定義為同步模塊(sync_mod),第一個模塊還產(chǎn)生第二個模塊圖像生成模塊(img_gen) 所需的信號。
圖 1帶有兩個模塊的頂層原理圖
img_gen模塊的輸出是三位輸出。這意味著VGA顯示器中可以有8種組合,因此可以有8種顏色。位組合的數(shù)字輸出與VGA顏色輸出對應(yīng)如表 1所示。
表 1數(shù)字輸出與VGA顏色輸出對應(yīng)表
3、 同步模塊
同步模塊為VGA顯示器生成垂直和水平同步信號。該模塊具有三個輸入,它們是:
- 開始 --- 這將激活/停用模塊
- 時鐘 --- 系統(tǒng)時鐘
- 重置 --- 重置同步模塊
兩個輸出信號是垂直和水平同步信號,它們直接連接到 VGA 連接器。
除了兩個輸出之外,還有三個信號輸入到圖像生成模塊。其中兩個輸出x_control和y_control控制 x 和 y 像素。此設(shè)計(jì)默認(rèn)的VGA顯示分辨率為640 X 480。因此,x_control 從 0 計(jì)數(shù)到639,y_control 從 0 計(jì)數(shù)到479。為了完成此任務(wù),模塊中創(chuàng)建了兩個計(jì)數(shù)器模型。一個計(jì)數(shù)器滿足水平分辨率,另一個滿足垂直分辨率。第三個信號是 Video_on 信號,用于啟用/禁用視頻。代表同步模塊的符號如圖 2所示。
圖2同步模塊符號圖
4、 圖像生成模塊
該模塊為VGA顯示器生成RGB輸出,該模塊具有在顯示中生成所需塊的部分。如前所述,三個RGB輸出是數(shù)字信號,可產(chǎn)生八種組合,從而在顯示中產(chǎn)生八種顏色。圖像生成模塊的符號如圖 3所示。
圖 3圖像生成模塊符號圖
該模塊的VHDL模型有幾個部分來描述輸出數(shù)字信號。在VGA顯示器上生成的最終圖像用于PONG游戲,該游戲具有三個主要組件,如圖 4所示。
圖 4圖像生成模塊在輸出端的VGA顯示
在VGA顯示器上看到的PONG游戲中的三個主要組件是:
- Wall - 限制球越過并在屏幕上以黑色顯示。
- Ball - 在屏幕中移動并以綠色顯示。
- Bar – bar由img_gen模塊上的button_r和button_l輸入控制,并以藍(lán)色顯示。
圖像生成模塊生成數(shù)字輸出以顯示三種顏色,屏幕的其余部分為紅色。以下是 RGB 數(shù)字引腳上預(yù)期的輸出:
表2圖像生成模塊期望的輸出
圖像生成模塊的輸入x_control和y_control定義了顯示器上的像素,x_control和 y_control給定值下的顏色輸出由圖 4決定。對于y_control的每個值,x_control的值從0掃描到639,,y_control的值從0掃到469。這樣就形成了一個640X480分辨率的視頻,完成了一個顯示周期。這是由圖像生成模塊的video_on輸入決定的。
SaberRD中仿真與分析
SaberRD仿真平臺中主要進(jìn)行瞬態(tài)分析,它根據(jù)時間仿真系統(tǒng)性能。SaberRD運(yùn)行關(guān)于時間的模擬,并繪制各種信號以檢查系統(tǒng)輸出。在SaberRD中運(yùn)行仿真有幾個選項(xiàng)可用于可視化電路中不同部分的操作。用于運(yùn)行各種分析、繪制結(jié)果、測量各種參數(shù)等的自動化工具對于提高設(shè)計(jì)工程師的生產(chǎn)力非常有用。
該設(shè)計(jì)還附帶一個運(yùn)行瞬態(tài)分析并繪制rgb輸出信號的實(shí)驗(yàn)。除此之外,video_on信號以及指定顯示器上像素的 x 和 y 值。
1、 如何運(yùn)行實(shí)驗(yàn)Experiment
a、下載設(shè)計(jì)文件中,打開設(shè)計(jì)vhdl_fpga_demo.ai_dsn。
b、轉(zhuǎn)到Simulate選項(xiàng)卡,在Analysis列表中選擇Experiment,在屏幕右邊的Experiments列表中選擇transient_analysis。開始仿真。
c、仿真完成后,results窗格將顯示圖表和實(shí)驗(yàn)報告。
d、雙擊實(shí)驗(yàn)報告,在報告中可以看到Ball和Bar寬度的測量值。
e、雙擊圖表“key_outputs”,如圖 5所示的波形圖顯示出來。
2、 結(jié)果和觀察
了解設(shè)計(jì)的預(yù)期結(jié)果以了解仿真結(jié)果是否符合預(yù)期非常重要。設(shè)計(jì)的期望已經(jīng)在上面的部分中解釋過。運(yùn)行實(shí)驗(yàn)后,結(jié)果窗格中會顯示圖表和實(shí)驗(yàn)報告。雙擊圖表“key_outputs”結(jié)果如下圖 5。
圖5瞬態(tài)仿真波形圖
如前所述,對于變量“y”的每個值,變量“x”從 0變?yōu)?39。‘y’ 的值從0到479以完成一個顯示周期。這是640X480分辨率VGA顯示器的定義。
如圖 4所示,顯示和背景中有三個項(xiàng)目。這會在輸出引腳上產(chǎn)生rgb(0)、rgb(1)和rgb(2)的四種組合,如表1中所述。圖 5中提到了在一個顯示周期中的四個區(qū)域。
當(dāng)圖表放大到區(qū)域1時,信號如圖 6所示??梢钥闯?rgb 輸出為 0、0 和 0,這表示黑色表示墻壁。
圖6黑色墻壁的RGB輸出狀態(tài)
區(qū)域2被縮放以查看屏幕上顯示的球。球是綠色的,輸出應(yīng)該是010。圖 7中顯示的放大區(qū)域也證實(shí)了這一點(diǎn)。
圖7綠色球的RGB輸出狀態(tài)
區(qū)域3表示背景,顏色為紅色。紅色的代碼是100,如下圖 8所示。
圖8紅色背景的RGB輸出
顯示器上的最后一個對象是藍(lán)色的Bar,RGB輸出應(yīng)為001,如下圖 9所示。
圖9藍(lán)色Bar的RGB輸出
除此之外,圖表上還有兩個測量值。這些測量以像素為單位顯示寬度,其中Ball的寬度為20,Bar 的寬度為120像素。這可以通過打開img_gen.vhd模型來驗(yàn)證,如下圖 10所示。
圖10圖像生成模塊代碼
按比例,Ball和Bar的寬度可以在實(shí)驗(yàn)報告中驗(yàn)證,如圖 11所示。
圖11測量顯示Ball和Bar的寬度
這里描述了圖 10中紅框中顯示的Bar和Ball寬度如何與圖 11中的脈沖寬度測量相關(guān)。一個video_on脈沖寬度,對于給定的“y”,在此期間,“x”像素從0變?yōu)?39 ,如圖 12所示,為1.28ms。在此期間 x 像素為藍(lán)色的時間為240us。
圖12以像素為單位計(jì)算Bar的寬度
因此,以像素為單位的Bar寬度為
同樣,以像素為單位的 Ball 的寬度為
結(jié)論
該設(shè)計(jì)示例表明 FPGA 的仿真可以在SaberRD 中執(zhí)行,并且自動化方法有助于獲得易于閱讀的結(jié)果。在仿真工具中執(zhí)行的詳細(xì)分析表明,電路的輸出符合設(shè)計(jì)要求和所需的輸出。因此,SaberRD 被證明是用于仿真涉及到 FPGA 的設(shè)計(jì)的有前途的解決方案。
-
FPGA
+關(guān)注
關(guān)注
1624文章
21538瀏覽量
600470 -
連接器
+關(guān)注
關(guān)注
98文章
14055瀏覽量
135691 -
RGB
+關(guān)注
關(guān)注
4文章
794瀏覽量
58305 -
VHDL語言
+關(guān)注
關(guān)注
1文章
113瀏覽量
17957 -
VGA接口顯示
+關(guān)注
關(guān)注
0文章
3瀏覽量
965
發(fā)布評論請先 登錄
相關(guān)推薦
評論