四选一数据选择器源程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

四选一数据选择器源程序

Library ieee;

Use ieee.std_logic_1164.all;

Entity mux4_2 is

Port (din: in std_logic_vector(3 downto 0); a,b : in std_logic;

S: out std_logic);

End;

Architecture with_when of mux4_2 is Signal sel : std_logic_vector(1 downto 0); Begin

Sel<=a&b;

S<=din(0) when sel=“00”else

din(1)when sel= “01” else

din(2)when sel= “10” else

din(3);---见程序说明。

Architecture with_select of mux4 is

Signal sel :std_logic_vector(1 downto 0); begin

sel<=a&b;

with sel select

s<=din(0) when “00”,

s<=din(1) when “01”,

s<=din(2) when “10”,

s<=din(3) when “11”,

…Z‟when others;

End;

程序说明:

1.本程序中含有两个结构体,with_when和with_select,max+plus软

件系统自动执行几何位置处于最后的机构体with_select.

2.结构体with_when是用并行条件信号赋值语句描述四选一数据选

择器。注意,最后一个输出din(3)不含有when子句;在s表达式中只有一个分号(;)。

3.结构体with_select.是用并行选择信号赋值语句描述四选一数据选

择器。注意,选择信号赋值语句中选择条件与case语句相似,不允许条件重叠和涵盖不全。由于a,b的值除了‘1’‘0’外,还有其他7个值,所以要用when others代表其他值,以穷尽所有可能值。

4.同一个设计任务,可以用不同的语句进行描述,

5.本程序中din为输入4位矢量信号。

实例2 3线----8线译码器

一、设计任务

描述一个3线-8线译码器,使能端为g1、g2a、g3b,地址选择端为a、

b、c,输出端为总线y。

二、算法设计

用case语句描述电路,利用真值表辅助,很容易编写出程序。

三、源程序

1.文件名decoder3_8.vhd

2.端口图

3线-8线译码器端口

3.源程序

Library ieee;

Use ieee.std_logic_1164.all;

Entity decoder3_8 is

Port (a、b、c g1、g2a、g2b:in std_logic;

Y: out std_logic_vector(7 downto 0));

End;

Architecture rtl of decoder3_8 is

Signal dz:std_logic_vector(2 downto 0);

Begin

Dz<=c&b&a;

Process(dz,g1,g2a,g3b)

Begin

If (g1= …1‟ and g2a= …0‟and g2b= …0‟) then

Case dz is

When “000”=>y<= “11111110”;

When “001”=>y<= “11111101”;

When “010”=>y<= “11111011”;When “011”=>y<= “111101111”;When “100”=>y<= “11101111”;When “101”=>y<= “11011111”;When “110”=>y<= “10111111”;When “111”=>y<= “01111111”;When others =>y<= “XXXXXXXX”;End case;

Else

Y<= “11111111”;

End if ;

End process;

End;

相关文档
最新文档