数据选择器的VHDL设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验名称:数据选择器的VHDL设计
一、用WHEN_ELSE语句编写具有低电平使能端的4选1数据选择器
1.实体框图
2.程序设计
①编译前的程序
Library ieee;
Use ieee.std_logic_1164.all;
Entity Mux41A is
port(D0,D1,D2,D3,EN:in std_logic;
A0,A1:in std_logic;
Y:out std_logic);
End Mux41A;
Architecture one of Mux41A is
signal B:std_logic
Begin
B<=EN & A1 & A0;
Y<=D0 when B="000" else
D1 when B="001" else
D2 when B="010" else
D3 when B="011" else
'Z';
End architecture one;
②程序编译错误情况
错误1:
Error (10500): VHDL syntax error at Mux41A.vhd(10) near text "Begin";
expecting ";", or ":=", or "bus", or "register"
③正确的程序
Library ieee;
Use ieee.std_logic_1164.all;
Entity Mux41A is
port(D0,D1,D2,D3,EN:in std_logic;
A0,A1:in std_logic;
Y:out std_logic);
End Mux41A;
Architecture one of Mux41A is
signal B:std_logic_vector(2 downto 0);
Begin
B<=EN & A1 & A0;
Y<=D0 when B="000" else
D1 when B="001" else
D2 when B="010" else
D3 when B="011" else
'Z';
End architecture one;
3.仿真波形图
4.仿真波形分析
EN为低电平有效的使能端,A1、A0为控制端,D0、D1、D2、D3为选通端,Y为输出端当EN=‘1’时,输出为高阻状态;
当EN=‘0’时,低电平有效 A1A0=“00”时,选择D0输出
A1A0=“01”时,选择D1输出
A1A0=“10”时,选择D2输出
A1A0=“11”时,选择D3输出