⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alt_cusp72_muxhot64_wire.vhd

📁 nios里面用自定义指令集来实现三角函数
💻 VHD
字号:
-- alt_cusp72_muxhot64_wire.vhd

library ieee, altera;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use std.textio.all;
use altera.alt_cusp72_package.all;

entity alt_cusp72_muxhot64_wire is
    generic (
        NAME    : string := "";
        PORTS   : integer := 64;
        WIDTH   : integer := 1
    );
    port (
        sel     : in  std_logic_vector(PORTS-1 downto 0) := (others => '0');
        data0   : in  std_logic := '0';
        data1   : in  std_logic := '0';
        data2   : in  std_logic := '0';
        data3   : in  std_logic := '0';
        data4   : in  std_logic := '0';
        data5   : in  std_logic := '0';
        data6   : in  std_logic := '0';
        data7   : in  std_logic := '0';
        data8   : in  std_logic := '0';
        data9   : in  std_logic := '0';
        data10  : in  std_logic := '0';
        data11  : in  std_logic := '0';
        data12  : in  std_logic := '0';
        data13  : in  std_logic := '0';
        data14  : in  std_logic := '0';
        data15  : in  std_logic := '0';
        data16  : in  std_logic := '0';
        data17  : in  std_logic := '0';
        data18  : in  std_logic := '0';
        data19  : in  std_logic := '0';
        data20  : in  std_logic := '0';
        data21  : in  std_logic := '0';
        data22  : in  std_logic := '0';
        data23  : in  std_logic := '0';
        data24  : in  std_logic := '0';
        data25  : in  std_logic := '0';
        data26  : in  std_logic := '0';
        data27  : in  std_logic := '0';
        data28  : in  std_logic := '0';
        data29  : in  std_logic := '0';
        data30  : in  std_logic := '0';
        data31  : in  std_logic := '0';
        data32  : in  std_logic := '0';
        data33  : in  std_logic := '0';
        data34  : in  std_logic := '0';
        data35  : in  std_logic := '0';
        data36  : in  std_logic := '0';
        data37  : in  std_logic := '0';
        data38  : in  std_logic := '0';
        data39  : in  std_logic := '0';
        data40  : in  std_logic := '0';
        data41  : in  std_logic := '0';
        data42  : in  std_logic := '0';
        data43  : in  std_logic := '0';
        data44  : in  std_logic := '0';
        data45  : in  std_logic := '0';
        data46  : in  std_logic := '0';
        data47  : in  std_logic := '0';
        data48  : in  std_logic := '0';
        data49  : in  std_logic := '0';
        data50  : in  std_logic := '0';
        data51  : in  std_logic := '0';
        data52  : in  std_logic := '0';
        data53  : in  std_logic := '0';
        data54  : in  std_logic := '0';
        data55  : in  std_logic := '0';
        data56  : in  std_logic := '0';
        data57  : in  std_logic := '0';
        data58  : in  std_logic := '0';
        data59  : in  std_logic := '0';
        data60  : in  std_logic := '0';
        data61  : in  std_logic := '0';
        data62  : in  std_logic := '0';
        data63  : in  std_logic := '0';
        q       : out std_logic
    );
end entity;


architecture rtl of alt_cusp72_muxhot64_wire is
    signal masks : STD_LOGIC_VECTOR(64 downto 0);
begin
    assert WIDTH = 1
        report "WIDTH generic must be 1 for wire muxes"
        severity ERROR;

    assert PORTS <= 64
        report "PORTS generic must be 64 or less"
        severity ERROR;

    unused_mask_gen: masks(64 downto PORTS) <= (others=>'0');
	used_mask_gen:   masks(PORTS-1 downto 0) <= sel;

with masks select
    q <= data0   when "00000000000000000000000000000000000000000000000000000000000000001",
         data1   when "00000000000000000000000000000000000000000000000000000000000000010",
         data2   when "00000000000000000000000000000000000000000000000000000000000000100",
         data3   when "00000000000000000000000000000000000000000000000000000000000001000",
         data4   when "00000000000000000000000000000000000000000000000000000000000010000",
         data5   when "00000000000000000000000000000000000000000000000000000000000100000",
         data6   when "00000000000000000000000000000000000000000000000000000000001000000",
         data7   when "00000000000000000000000000000000000000000000000000000000010000000",
         data8   when "00000000000000000000000000000000000000000000000000000000100000000",
         data9   when "00000000000000000000000000000000000000000000000000000001000000000",
         data10  when "00000000000000000000000000000000000000000000000000000010000000000",
         data11  when "00000000000000000000000000000000000000000000000000000100000000000",
         data12  when "00000000000000000000000000000000000000000000000000001000000000000",
         data13  when "00000000000000000000000000000000000000000000000000010000000000000",
         data14  when "00000000000000000000000000000000000000000000000000100000000000000",
         data15  when "00000000000000000000000000000000000000000000000001000000000000000",
         data16  when "00000000000000000000000000000000000000000000000010000000000000000",
         data17  when "00000000000000000000000000000000000000000000000100000000000000000",
         data18  when "00000000000000000000000000000000000000000000001000000000000000000",
         data19  when "00000000000000000000000000000000000000000000010000000000000000000",
         data20  when "00000000000000000000000000000000000000000000100000000000000000000",
         data21  when "00000000000000000000000000000000000000000001000000000000000000000",
         data22  when "00000000000000000000000000000000000000000010000000000000000000000",
         data23  when "00000000000000000000000000000000000000000100000000000000000000000",
         data24  when "00000000000000000000000000000000000000001000000000000000000000000",
         data25  when "00000000000000000000000000000000000000010000000000000000000000000",
         data26  when "00000000000000000000000000000000000000100000000000000000000000000",
         data27  when "00000000000000000000000000000000000001000000000000000000000000000",
         data28  when "00000000000000000000000000000000000010000000000000000000000000000",
         data29  when "00000000000000000000000000000000000100000000000000000000000000000",
         data30  when "00000000000000000000000000000000001000000000000000000000000000000",
         data31  when "00000000000000000000000000000000010000000000000000000000000000000",
         data32  when "00000000000000000000000000000000100000000000000000000000000000000",
         data33  when "00000000000000000000000000000001000000000000000000000000000000000",
         data34  when "00000000000000000000000000000010000000000000000000000000000000000",
         data35  when "00000000000000000000000000000100000000000000000000000000000000000",
         data36  when "00000000000000000000000000001000000000000000000000000000000000000",
         data37  when "00000000000000000000000000010000000000000000000000000000000000000",
         data38  when "00000000000000000000000000100000000000000000000000000000000000000",
         data39  when "00000000000000000000000001000000000000000000000000000000000000000",
         data40  when "00000000000000000000000010000000000000000000000000000000000000000",
         data41  when "00000000000000000000000100000000000000000000000000000000000000000",
         data42  when "00000000000000000000001000000000000000000000000000000000000000000",
         data43  when "00000000000000000000010000000000000000000000000000000000000000000",
         data44  when "00000000000000000000100000000000000000000000000000000000000000000",
         data45  when "00000000000000000001000000000000000000000000000000000000000000000",
         data46  when "00000000000000000010000000000000000000000000000000000000000000000",
         data47  when "00000000000000000100000000000000000000000000000000000000000000000",
         data48  when "00000000000000001000000000000000000000000000000000000000000000000",
         data49  when "00000000000000010000000000000000000000000000000000000000000000000",
         data50  when "00000000000000100000000000000000000000000000000000000000000000000",
         data51  when "00000000000001000000000000000000000000000000000000000000000000000",
         data52  when "00000000000010000000000000000000000000000000000000000000000000000",
         data53  when "00000000000100000000000000000000000000000000000000000000000000000",
         data54  when "00000000001000000000000000000000000000000000000000000000000000000",
         data55  when "00000000010000000000000000000000000000000000000000000000000000000",
         data56  when "00000000100000000000000000000000000000000000000000000000000000000",
         data57  when "00000001000000000000000000000000000000000000000000000000000000000",
         data58  when "00000010000000000000000000000000000000000000000000000000000000000",
         data59  when "00000100000000000000000000000000000000000000000000000000000000000",
         data60  when "00001000000000000000000000000000000000000000000000000000000000000",
         data61  when "00010000000000000000000000000000000000000000000000000000000000000",
         data62  when "00100000000000000000000000000000000000000000000000000000000000000",
         data63  when "01000000000000000000000000000000000000000000000000000000000000000",
         '0'     when "00000000000000000000000000000000000000000000000000000000000000000",
         'X'     when others;

end architecture;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -