打印

新手求达人解释一EDA程序

[复制链接]
2051|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wenqiang28|  楼主 | 2008-6-19 20:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
根据输入确定输出值
    library ieee;
    use ieee.std_logic_1164.all;
    entity mux41 is
      port(s4,s3,s2,s1: in std_logic;
          z4,z3,z2,z1: out std_logic);
    end mux41;
    architecture art of mux41 is
    begin
      process(s4, s3, s2, s1)
        variable sel: integer range 0to15;
      begin
          sel:=0;
      if s1=‘1’ then  sel:=sel+1; end if;
      if s2=‘1’ then  sel:=sel+2; end if;
      if s3=‘1’ then  sel:=sel+4; end if;
      if s4=‘1’ then  sel:=sel+8; end if;
      z1<=‘0’;  z2<=‘0’; z3<=‘0’;  z4<=‘0’;
      case  sel  is
          when  0 =>z1<=‘1’;
          when  1|3 =>z2<=‘1’;
          when  4 to 7|2 =>z3<=‘1’;
          when  others =>z4<=‘1’;
      end  case;
    end process;
end art; 
按要求应该是根据四位输入码来确定四位输入中哪一位输出为1,但这程序貌似不是这样的,还有那case语句中1,3,4,7,2.。。。。是怎么确定的哦??
谢谢了~~~

相关帖子

沙发
dzcn_hh| | 2008-6-26 10:04 | 只看该作者

飘过,学的是VERILOG

使用特权

评论回复
板凳
yuyuedl| | 2008-8-4 09:13 | 只看该作者

1

这是一个组合电路,感觉描述的风格不是很好。
另外,组合电路不用时钟的

使用特权

评论回复
地板
xiubing65| | 2008-8-19 11:09 | 只看该作者

同志哥

先看书,多看书,看懂书!
完了就自然会明白的,别什么都不看就跑来问...

使用特权

评论回复
5
xwj| | 2008-8-20 09:30 | 只看该作者

是啊,简单的组合逻辑直接按真值表译码即可

使用特权

评论回复
6
putiandiao| | 2008-8-20 21:55 | 只看该作者

这个程序不好!

有点繁琐!!

使用特权

评论回复
7
haoren| | 2008-8-22 23:27 | 只看该作者

真服你了

我觉得你应该好好的想想

      if s1=‘1’ then  sel:=sel+1; end if;
      if s2=‘1’ then  sel:=sel+2; end if;
      if s3=‘1’ then  sel:=sel+4; end if;
      if s4=‘1’ then  sel:=sel+8; end if;
这个你能想清它的硬件构架吗?
强烈建议要认真把VHDL语言看一下!

使用特权

评论回复
8
dynameo| | 2008-8-23 17:17 | 只看该作者

一塌糊涂

 写得一塌糊涂。

   编程思想有问题,格式没掌握好。

   组合逻辑设计和时序逻辑设计区别他就没学好!  

  其实完全可以用并行语句时序它,不用放到进程里面去检查各个输入的变量确定输出!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝