打印

求VHDL语言多种方式实现多重选择器

[复制链接]
2194|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
星星之火红|  楼主 | 2011-12-10 10:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
GoldSunMonkey| | 2011-12-10 10:51 | 只看该作者
刚起床就碰上你了。
嘿嘿,等我想想哈

使用特权

评论回复
板凳
GoldSunMonkey| | 2011-12-10 10:51 | 只看该作者
第一种:利用Case_When
process (sel, d)
begin
  case sel is
     when "00" =>mux_out <= d(0);
     when "01" =>mux_out <= d(1);
     when "10" =>mux_out <= d(2);
     when "11" => mux_out<= d(3);
     when others => mux_out <= 'Z';
  end case;
end process;

使用特权

评论回复
地板
GoldSunMonkey| | 2011-12-10 11:01 | 只看该作者
第二种:利用多重when_else
architecture when_else of muxgate is
  begin
     mux_out <= d(0) when (sel= " 00") else 'Z';
     mux_out <= d(1) when (sel= " 01") else 'Z';
     mux_out <= d(2) when (sel= " 10") else 'Z';
     mux_out <= d(3) when (sel=" 11 ") else 'Z';
end when_else;

使用特权

评论回复
5
GoldSunMonkey| | 2011-12-10 11:09 | 只看该作者
第三种:利用单一when_else
architecture when_else of muxgate is
begin
  mux_out <= d(0) when sel = "00" else
                  d(1) when sel = "01" else
                  d(2) when sel = "10" else
                  d(3) when sel= "11" else 'Z';

使用特权

评论回复
6
GoldSunMonkey| | 2011-12-10 11:11 | 只看该作者
第四种:利用with_select
architecture with_select of muxgate is
  begin
     with sel select
        mux_out<= d(0) when "00",
                      d(1) when "01 ",
                      d(2) when "10",
                      d(3) when "11",
                     'Z' when others;
end with_select;

使用特权

评论回复
7
GoldSunMonkey| | 2011-12-10 11:11 | 只看该作者
第五种:利用if_then_else
architecture if_then_else of muxgate is
  begin
     process (sel,d)
        begin
        if sel = "00" then     mux out <= d(0);
        elsif sel = "01" then mux_out <= d(1);
        elsif sel= "10" then mux_out <= d(2),
        elsif sel = "11" then mux_out <= d(3);
                            else mux_out <='Z';
        end if;
  end process;
end if_then_else;

使用特权

评论回复
8
GoldSunMonkey| | 2011-12-10 11:11 | 只看该作者
可能还有第六种,我想不起来了。

使用特权

评论回复
9
星星之火红|  楼主 | 2011-12-10 11:12 | 只看该作者
这么多啊,感觉都能实现。

猴哥,你再想想哦。哈哈。

嘿嘿~

使用特权

评论回复
10
hihu| | 2011-12-10 14:47 | 只看该作者
猴版在多想想吧

使用特权

评论回复
11
hihu| | 2011-12-10 14:47 | 只看该作者
;P

使用特权

评论回复
12
drentsi| | 2011-12-10 23:24 | 只看该作者
给爆个猛的
entity n_to_1_mux_andorbased is
        generic(
        C_AND_PIPELINE:integer :=1;
        C_OR_PIPELINE:integer :=2;
        NUM_BIT:integer :=8;
        NUM_NPORT:integer :=64
        );
    Port ( clk : in  STD_LOGIC;
           rst : in  STD_LOGIC;
           datain : in  STD_LOGIC_VECTOR (0 to NUM_BIT*NUM_NPORT-1);
           dataout : out  STD_LOGIC_VECTOR (0 to NUM_BIT-1);
           ch_sel : in  STD_LOGIC_VECTOR(0 to NUM_NPORT-1) --left to right sel 0 to n-1
                          );
编译结果,64路8bit的mux,V5-LX50T-1
Selected Device : 5vlx50tff665-1


Slice Logic Utilization:
Number of Slice Registers:             584  out of  28800     2%  
Number of Slice LUTs:                  584  out of  28800     2%  
    Number used as Logic:               584  out of  28800     2%  

Slice Logic Distribution:
Number of LUT Flip Flop pairs used:    584
   Number with an unused Flip Flop:       0  out of    584     0%  
   Number with an unused LUT:             0  out of    584     0%  
   Number of fully used LUT-FF pairs:   584  out of    584   100%  
   Number of unique control sets:        73


Timing Summary:
---------------
Speed Grade: -1

   Minimum period: 1.885ns (Maximum Frequency: 530.504MHz)
   Minimum input arrival time before clock: 0.573ns
   Maximum output required time after clock: 0.471ns
   Maximum combinational path delay: No path found

-----------------------------------------------------------------
128路8bit的mux,V5-LX50T-1

Device utilization summary:
---------------------------

Selected Device : 5vlx50tff665-1


Slice Logic Utilization:
Number of Slice Registers:            1160  out of  28800     4%  
Number of Slice LUTs:                 1184  out of  28800     4%  
    Number used as Logic:              1184  out of  28800     4%  

Slice Logic Distribution:
Number of LUT Flip Flop pairs used:   1184
   Number with an unused Flip Flop:      24  out of   1184     2%  
   Number with an unused LUT:             0  out of   1184     0%  
   Number of fully used LUT-FF pairs:  1160  out of   1184    97%  
   Number of unique control sets:       137
Timing Summary:
---------------
Speed Grade: -1

   Minimum period: 2.208ns (Maximum Frequency: 452.899MHz)
   Minimum input arrival time before clock: 0.573ns
   Maximum output required time after clock: 0.471ns
   Maximum combinational path delay: No path found

使用特权

评论回复
13
GoldSunMonkey| | 2011-12-11 13:02 | 只看该作者
??????

使用特权

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

本版积分规则

101

主题

1782

帖子

22

粉丝