前两篇给大家介绍了软件的安装、破解以及工程的建立等基本的软件操作,这一篇就通过简单的二选一的数据选择器的设计来实际操作一下,要记住,多动手才是王道。
设计背景:
数据选择器在数字电路的设计中非常重要,在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
+关注
关注
1624文章
21597浏览量
601013 -
选择器
+关注
关注
0文章
106浏览量
14499
发布评论请先 登录
相关推荐
评论