- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章
3-5 设计一个 4 选 1 多路选择器,当选择输入信号分别取 “00”、“01”、
“10”和“11”时,输出信号分别与一路输入信号相连。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MAX4_1 IS
PORT(A,B,C,D,S1,S2 : IN STD_LOGIC;
Y : OUT STD_LOGIC);
END ENTITY MAX4_1;
ARCHITECTURE HF1 OF MAX4_1 IS
SIGNAL SS : STD_LOGIC_VECTOR (0 TO 1);
BEGIN
SS=S2S1;
PROCESS(SS)
BEGIN
CASE SS IS
WHEN 00 = Y=A;
WHEN 01 = Y=B;
WHEN 10 = Y=C;
WHEN 11 = Y=D;
WHEN OTHERS = NULL;
END CASE;
END PROCESS;
END HF1;
3-6 设计一个 7 人表决电路,参加表决者 7 人,同意为 1,不同意为
0,同意者过半则表决通过,绿指示灯亮;表决不通过则红指示灯亮。
设计思路 :根据 7 人表决电路设计要求, 7 人中至少有 4 个通过才可以表决通过,
故可以在程序中设置一个变量 TEMP,使其在表决电路中遇 1 则加 1,遇 0 则加 0
(设计中1 表示通过, 0 表示不通过)。当 TEMP=4时,表示表决通过, 当 TEMP4
时表决不通过。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY VOTE7 IS
PORT (MEN:IN STD_LOGIC_VECTOR(6 DOWNTO 0);
OUTPUT: OUT BIT);
END VOTE7;
ARCHITECTURE BEHA VE OF VOTE7 IS
BEGIN
PROCESS(MEN)
VARIABLE TEMP: INTEGER RANGE 0 TO 7;
BEGIN
TEMP:=0;
FOR I IN 0 TO 6 LOOP
IF(MEN(I)=1)THEN
TEMP:=TEMP+1;
ELSE
TEMP:=TEMP;
END IF;
END LOOP;
CASE TEMP IS
WHEN 0 TO 3 =OUTPUT=0;
WHEN 4 TO 7 =OUTPUT=1;
END CASE ;
END PROCESS;
END BEHAVE;
第四章
4-6 试写出 4 选 1 多路选择器 VHDL描述。选择控制信号为 S1和 S0,
输入信号为 A,B,C,D,输出信号为 Y。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MUX41A IS
PORT (A,B,C,D,S0,S1:IN STD_LOGIC; --输入信号
Y:OUT STD_LOGIC); -- 输出信号
END ENTITY MUX41A;
ARCHITECTURE ONE OF MUX41A IS
SIGNAL S:STD_LOGIC_VECTOR(1 DOWNTO 0);
BEGIN
S=S0S1; -- 并置操作,获得二维矢量数据类型
PROCESS(S0,S1,A,B,C,D) --敏感信号
BEGIN
CASE S IS
WHEN00= Y=A;
WHEN01= Y=B;
WHEN10= Y=C;
WHEN11= Y=D;
WHEN OTHERS=NULL; --其它情况为空值
END CASE; --CASE 语句结束
END PROCES
文档评论(0)