前兩篇給大家介紹了軟件的安裝、破解以及工程的建立等基本的軟件操作,這一篇就通過簡單的二選一的數據選擇器的設計來實際操作一下,要記住,多動手才是王道。
設計背景:
數據選擇器在數字電路的設計中非常重要,在FPGA內部的邏輯實現中都是通過數據選擇器實現的,數據選擇器的應用使我們的代碼和設計更加人性化,多元化。
設計原理:
本次的設計主要是一個簡單的二選一數據選擇器,我們的設計主要有4個端口,數據輸入data_1,data_2,數據選擇位select,輸出data_out
設計架構圖:
設計代碼:
模塊
0modulesel_1(data_1,data_2,select,data_out);
1
2 inputdata_1,data_2; //數據輸入
3 inputselect; //選擇位
4
5 outputregdata_out; //數據的輸出
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
仿真圖:
在仿真中我們可以真實的看到,當數據data_1為1,data_2位0的時候,當選擇位select為0的時候,輸出data_out的值為0也就是data_2的值,當select為1的時候,data_out的值位1,也就是data_1的值,后面的仿真也一樣我們可以清楚的看到。
以上就是二選一數據選擇器的設計,大家可以自己動手在quartus II 13.1 去操作一下,體驗一下。
-
FPGA
+關注
關注
1629文章
21729瀏覽量
603002 -
選擇器
+關注
關注
0文章
107瀏覽量
14534
發布評論請先 登錄
相關推薦
評論