求问以下VHDL程序是不是错误的,还有译码器的输出低电平有效是什么意思

不是当000时候就是11111110,001时候就是11111101?... 不是当000时候就是11111110,001时候就是11111101? 展开
 我来答
nereus78e904
推荐于2016-05-24 · TA获得超过1.5万个赞
知道大有可为答主
回答量:5463
采纳率:90%
帮助的人:1898万
展开全部
1. 内层IF语句中的ELSE分支有错误,同时少了一个END IF;。2. 外层IF语句少了ELSE分支。
应当将ELSE XOUT <= "11111011";改成下面3行:
ELSE XOUT <= "01111111";
END IF;
ELSE XOUT <= (OTHERS => '1');
实际上,上述描述采用IF语句是不合适的,因为3-8译码器不必采用优先权结构,而用CASE语句才是恰当的行为描述。
用CASE语句代替内层IF语句的行为描述:
IF EN='1' THEN
CASE DIN IS
WHEN "111" => XOUT <= "11111110";
WHEN "110" => XOUT <= "11111101";
WHEN "101" => XOUT <= "11111011";
WHEN "100" => XOUT <= "11110111";
WHEN "011" => XOUT <= "11101111";
WHEN "010" => XOUT <= "11011111";
WHEN "001" => XOUT <= "10111111";
WHEN "000" => XOUT <= "01111111";
WHEN OTHERS => XOUT <= (OTHERS => '1');
END CASE;
ELSE XOUT <= (OTHERS => '1');
END IF;
至于低电平有效,你可以看成是逻辑0有效。译码器在译码时,只可能对一个二进制码(你的描述中是din)进行译码,因此只可能有一个输出端有效。哪个输出端有效,那个就是低电平(逻辑0),其余的都是高电平(逻辑1)。
更多追问追答
追问
在吗
追答
如果输入的待译编码本身就是反码的话,“111”就是“000”的反码。题目中没有讲明输入的是反码还是原码,从具体描述来看,输入的是反码。
百度网友ce51f585
2015-01-13 · TA获得超过422个赞
知道小有建树答主
回答量:231
采纳率:66%
帮助的人:72.3万
展开全部
是梵蒂冈的法国的分公司的风格
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
能不好像你是
2015-01-12
知道答主
回答量:48
采纳率:0%
帮助的人:5.2万
展开全部
我在刷题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式