试验二、四选一多路选择器的实现
实验项目:四选一多路选择器的实现 06电信 陈振林
实验目的:1.学会熟练使用maxplus II编译工具。
2.熟悉VHDL文本设计方法。
3.学会使用case…when…语句。
实验器材:GW-48试验箱一台,PC一台。
实验原理:
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
由上图可见,四选一多路选择器由两个片选端(a【1..0】即a1,a0)和四个输入端(b1,b2,b3,b4)以及一个输出端(y)组成。满足以下关系:
A1 | A0 | Y= |
0 | 0 | B1 |
0 | 1 | B2 |
1 | 0 | B3 |
1 | 1 | B4 |
可以用case语句实现。
实验步骤:
1.打开max+plus II软件。
2.File->New->Text Editor flie,单击OK后,输入以下文本:
3.将该文件保存后, File->Project->Set project to current file后,单击compile后,单击start进行编译,改正其中的语法错误,直至编译通过。
4.波形仿真。单击File->New->Waveform Editor Flie,打开波形文件编辑器。在Name栏右击选择Enter Node from SNF,弹出下图:
单击list后,选择出现的所有项,单击OK后,弹出下图,对其中的输入a[1..0],b1,b2,b3,b4进行编辑后保存,在单击simulator后,出现以下仿真波形,分析后发现功能正确。
5.选择器件。Assign->Device,出现如下画面,去掉“Show Only…”前的勾,选择APCEX1K->
<?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" />EP1K30TC144-3->OK.
6.模式选择。因为本实验需要六个输入(a1,a0,b1,b2,b3,b4),一个输出(y),,因此选择模式6.
7.管教分配.得到如下的分配关系:
8.管脚锁定assign->Pin/Location/Chip后,分配结果如右图:
7.下载验证。重新编译一边,连接好试验箱,接通电源,点击下载,验证后发现功能圆满实现。
相关量 | 对应器件 | I/O口 | 管脚 |
A1 | 键8 | PIO13 | 27 |
A0 | 键7 | PIO12 | 26 |
B1 | 键6 | PIO11 | 23 |
B2 | 键5 | PIO10 | 22 |
B3 | 键4 | PIO9 | 21 |
B4 | 键3 | PIO8 | 20 |
y | LED1 | PIO16 | 30 |
数据处理及结果讨论:
在本实验中我学会了使用case…when…语句来设计产品。进一步学会了max+plus II和GW-48的配置方法。
关于四选一多路选择器的一点思考:
1.if…elsif…else语句设计四选一多路选择器
library ieee;
use ieee.std_logic_1164.all;
entity mux<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />41a is
port(a1,a0:in std_logic;
--输入选择信号
b1,b2,b3,b0:in std_logic;
--输入信号
y:out std_logic);
end entity;
architecture art of mux41a is
begin
process(a1,a0)
begin
if (a1='0'and a0='0')then y<=b0;
elsif(a1='0'and a0='1')then y<=b1;
elsif( a1='1'and a0='0')then y<=b2;
elsif( a1='1'and a0='1')then y<=b3;
else null;
end if;
end process;
end;
2.由mux21来实现
1mux21的设计library ieee;
use ieee.std_logic_1164.all;
--use ieee.std_logic_unsigned.all;
entity mux21 is
port(sel:in std_logic;
--输入选择信号
b1,b0:in std_logic;
--输入信号
y:out std_logic);
end entity;
architecture art of mux21 is
begin
process(sel)
begin
case sel is
when '0'=>y<=b0;
when '1'=> y<=b1;
when others=>null;
end case;
end process;
end;
2File->Create Default File生成mux21的图形符号。
3新建图形文件,在其中调入mux21,结合基本门电路设计下图所示电路,编译通过。
4建立仿真文件,得到下图,验证功能完
全正确。
总结:
1.本实验可以采用多种方式来实现。可以进一步锻炼自己的灵活运用能力。
2.通过生成图形符号的方式,可移植性很强,类似于文本设计中的元件例化。但是更直观,更方便,不易出错。可以在以后的设计中调用,大大的缩短设计时间。
3.图形方式的缺点是不易修改,不便于设计复杂的系统。
用户377235 2012-9-19 19:22
用户242117 2009-11-1 16:37