前兩篇給大家介紹了軟件的安裝、破解以及工程的建立等基本的軟件操作,這一篇就通過簡單的二選一的數(shù)據(jù)選擇器的設(shè)計來實際操作一下,要記住,多動手才是王道。
設(shè)計背景:
數(shù)據(jù)選擇器在數(shù)字電路的設(shè)計中非常重要,在FPGA內(nèi)部的邏輯實現(xiàn)中都是通過數(shù)據(jù)選擇器實現(xiàn)的,數(shù)據(jù)選擇器的應(yīng)用使我們的代碼和設(shè)計更加人性化,多元化。
設(shè)計原理:
本次的設(shè)計主要是一個簡單的二選一數(shù)據(jù)選擇器,我們的設(shè)計主要有4個端口,數(shù)據(jù)輸入data_1,data_2,數(shù)據(jù)選擇位select,輸出data_out
設(shè)計架構(gòu)圖:

設(shè)計代碼:
模塊
0modulesel_1(data_1,data_2,select,data_out);
1
2 inputdata_1,data_2; //數(shù)據(jù)輸入
3 inputselect; //選擇位
4
5 outputregdata_out; //數(shù)據(jù)的輸出
6
7 always@(*)
8 begin
9 if(select) //如果選擇位為高,輸出data_1
10 data_out =data_1;
11 else //如果選擇位為低,輸出data_2
12 data_out =data_2;
13 end
14
15endmodule
測試模塊
0`timescale1ns/1ps
1
2modulesel_1_tb;
3
4 regdata_1,data_2; //定義模塊的輸入輸出
5 regselect;
6
7 wiredata_out;
8
9 initialbegin
10 data_1 =0;
11 data_2 =0;
12 select =0;
13
14 #200data_1 =1;data_2 =0;//延遲200ns給輸入賦值
15 #100select =1; //延遲200ns后給選擇位賦值
16 #100select =0; //延遲200ns后給選擇位賦值
17
18 #200data_1 =0;data_2 =1;
19 #100select =0;
20 #100select =1;
21
22 #300$stop;
23 end
24
25 sel_1 sel_1_dut( //模塊的例化,和端口的連接
26 .data_1(data_1),
27 .data_2(data_2),
28 .select(select),
29 .data_out(data_out)
30 );
31
32endmodule
仿真圖:

在仿真中我們可以真實的看到,當(dāng)數(shù)據(jù)data_1為1,data_2位0的時候,當(dāng)選擇位select為0的時候,輸出data_out的值為0也就是data_2的值,當(dāng)select為1的時候,data_out的值位1,也就是data_1的值,后面的仿真也一樣我們可以清楚的看到。
以上就是二選一數(shù)據(jù)選擇器的設(shè)計,大家可以自己動手在quartus II 13.1 去操作一下,體驗一下。
-
FPGA
+關(guān)注
關(guān)注
1655文章
22286瀏覽量
630296 -
選擇器
+關(guān)注
關(guān)注
0文章
110瀏覽量
15053
發(fā)布評論請先 登錄
FPGA學(xué)習(xí)系列:33. 設(shè)計一個簡單的二選一數(shù)據(jù)選擇器
數(shù)據(jù)選擇器
至芯科技之a(chǎn)ltera 系列FPGA教程 第九篇 二選一多路選擇器的設(shè)計
至芯科技之a(chǎn)ltera 系列FPGA教程 第十篇 二選一多路選擇器激勵的設(shè)計
找一種八選一數(shù)據(jù)選擇器貼片式芯片
請問有單個二選一數(shù)據(jù)選擇器的芯片嗎?
【夢翼師兄今日分享】 二選一數(shù)據(jù)選擇器的設(shè)計
EDA四選一多路選擇器的設(shè)計
4選1多路選擇器是什么?
eda四選一多路選擇器的設(shè)計
74LS153利用雙四選一數(shù)據(jù)選擇器實現(xiàn)全加器的電路圖資料免費下載

FPGA學(xué)習(xí)系列:二選一數(shù)據(jù)選擇器的設(shè)計
評論