前一篇文章我們介紹了通過小腳丫FPGA核心開發(fā)板來進行門電路的實驗過程。當然,我們還可以畫出更多復雜的門電路組合,并且通過小腳丫FPGA輕松實現對應的輸入/輸出特性的定義?,F在,我們利用小腳丫來學習更多具有特定功能的實用組合邏輯電路。
本篇中,我們希望設計一個二進制比較器,通過小腳丫FPGA搭建實驗電路并驗證結果。
顧名思義,二進制比較器就是比較兩個二進制數的大小,因此對于一個兩位輸入的比較器來說,其輸出結果不外乎有小于,大于和等于三種可能。因此我們列出這個電路的真值表。
表1二進制比較器真值表
A |
B |
Y2(A |
Y1(A>B) |
Y0(A=B) |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
相信學習過數字電路課程的同學都知道如何將該電路進行邏輯運算,化簡并畫出對應的門電路組合,因此該步驟我們不在此過多贅述,直接上圖。
圖1電路圖
圖2 門電路組合
通過Verilog代碼,我們對該電路進行硬件描述。這次我們采用Data-flow的寫法,代碼中出現的!&^等符號,實際上就是等于同直接對數據進行邏輯運算,并分別對應NOT, AND, OR。希望大家之后對這些符號的熟悉程度就如同看¥$€等符號一樣親切。modulecomparer1
(
inputwireA,//定義輸入的兩個數a、b
inputwireB,
outputwireY2,//定義三種輸出結果對應的led
outputwireY0,
outputwireY1
);
assignY2=(!A)&B;//對應A
assignY1=A&(!B);//對應A>B
assignY0=!(A^B);//對應A=B
endmodule
在完成代碼編譯后,我們將輸入變量A和B以及輸出變量Y2,Y1,Y0分別對應至小腳丫的板載外設上。
表2 各變量對應小腳丫相應引腳
變量 |
小腳丫 |
A |
SW1 |
B |
SW2 |
Y2 |
L1 |
Y1 |
L2 |
Y0 |
L3 |
這樣,我們就在小腳丫上構建了一個二進制比較器,我們可以通過調節(jié)輸入編碼開關,并觀察LED燈的現象來驗證我們的設計。
文章的最后我們提兩個問題:1. 如果我們將開關SW1, SW2撥至如下圖所示,L1,L2,L3所對應的狀態(tài)應該是怎樣的?注意:小腳丫板載的LED是低電平點亮,也就是說,當輸出為1時,LED熄滅,反之則亮。
圖3
2. 假如現在小腳丫上L2、L3處于點亮狀態(tài),那么撥碼開關SW1和SW2現在應該是什么狀態(tài)?(圖中將撥碼開關放置中間未知僅為示意作用,實際不存在中間狀態(tài))。
圖4
是不是入手很簡單,隨后能夠很方便地做擴展和結果驗證?今天的內容到此結束,下一篇我們會介紹如何通過小腳丫實現更多實用且有趣的組合邏輯電路實驗,敬請期待。
責任編輯:xj
原文標題:基于FPGA的數字電路實驗2:比較器的實現
文章出處:【微信公眾號:FPGA入門到精通】歡迎添加關注!文章轉載請注明出處。
-
FPGA
+關注
關注
1625文章
21620瀏覽量
601239 -
比較器
+關注
關注
14文章
1628瀏覽量
107046 -
數字電路
+關注
關注
193文章
1595瀏覽量
80379
原文標題:基于FPGA的數字電路實驗2:比較器的實現
文章出處:【微信號:xiaojiaoyafpga,微信公眾號:電子森林】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論