使用顺序语句实现38译码器以及信号赋值在顺序语句中的性质

这篇博客探讨了在VHDL中使用顺序语句实现38译码器的过程,并详细解释了信号赋值在顺序语句中的性质。通过比较两个示例程序,强调了在同一过程中对同一信号多次赋值时,只有最后一次赋值有效的原因。这涉及到δ时间的概念,即尽管过程按顺序执行,但赋值操作在结束时是并行完成的,可能导致初值未定义的问题。文章引用了《EDA技术实用教程》作为参考来源。
摘要由CSDN通过智能技术生成

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity decoder38 is
port(input : in std_logic_vector(2 downto 0);
output : out std_logic_vector(7 downto 0));
end decoder38;
architecture decoder of decoder38 is
begin
process(input) begin
output<=“00000000”;
output(CONV_INTEGER(input))<=‘1’; --这两个的交集同一信号仅为output(CONV_INTEGER(input)),大体上是不属于同一信号先后赋值的,所以不会出现没有初值未知的情况
end process;
end decoder;
与下例程序对比

library IEEE;
use ieee.std_logic_1164.all;
entity mux is —四选一多路选择器
port(i0,i1,i2,i3,a,b: in std_logic; 四个输入,两个地址选择位,一个输出。
q: out std_logic);
end mux;
architecture body_mux of mux is
signal muxval : integer range 0 to 3;
begin
process(i0,i1,i2,i3,a,b) begin
muxval<=0; —给定初值0
if(a=‘1’) then muxval<=muxval+1;end if; —地址地位权为1
if(b=‘1’) th

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值