用VHDL实现4-16译码器

用VHDL语言就可以了

第1个回答  推荐于2017-10-04
library ieee;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY decode4-16 IS
PORT(a,b,c,d:IN STD_LOGIC;
q:BUFFER STD_LOGIC_VECTOR(15 DOWNTO 0));
END decode4-16 ;
architecture behave of decode4-16 is
signal indata:std_logic_vector(2 downto 0);
begin
indata<=c&b&a;
process(indata)
begin
case indata is
when “0000”=>y<=”1111111111111110”;
when “0001”=>y<=”1111111111111101”;
when “0010”=>y<=”1111111111111011”;
when “0011”=>y<=”1111111111110111”;
when “0100”=>y<=”1111111111101111”;
when “0101”=>y<=”1111111111011111”;
when “0110”=>y<=”1111111110111111”;
when “0111”=>y<=”1111111101111111”;
when “1000”=>y<=”1111111011111111”;
when “1001”=>y<=”1111110111111111”;
when “1010”=>y<=”1111101111111111”;
when “1011”=>y<=”1111011111111111”;
when “1100”=>y<=”1110111111111111”;
when “1101”=>y<=”1101111111111111”;
when “1110”=>y<=”1011111111111111”;
when “1111”=>y<=”0111111111111111”;
when others=>y<=”xxxxxxxxxxxxxxxx”;
end case;
end process;
end behave;本回答被提问者采纳
第2个回答  2010-05-07
最简单的,没有时钟,请雅正
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity Decoder is
Port (
DIN : in std_logic_vector(3 downto 0);
DOUT : out std_logic_vector(15 downto 0)
);
end Decoder;
architecture rtl of Decoder is
begin
process (DIN) begin
case(DIN) is
when "0000" => DOUT <= "0111111111111111";
when "0001" => DOUT <= "1011111111111111";
when "0010" => DOUT <= "1101111111111111";
when "0011" => DOUT <= "1110111111111111";
when "0100" => DOUT <= "1111011111111111";
when "0101" => DOUT <= "1111101111111111";
when "0110" => DOUT <= "1111110111111111";
when "0111" => DOUT <= "1111111011111111";
when "1000" => DOUT <= "1111111101111111";
when "1001" => DOUT <= "1111111110111111";
when "1010" => DOUT <= "1111111111011111";
when "1011" => DOUT <= "1111111111101111";
when "1100" => DOUT <= "1111111111110111";
when "1101" => DOUT <= "1111111111111011";
when "1110" => DOUT <= "1111111111111101";
when "1111" => DOUT <= "1111111111111110";
when others => DOUT <= "1111111111111111";
end case;
end process;
end rtl;本回答被网友采纳
第3个回答  2010-05-08
用循环写更简单,而且楼上的把输出的左右次序弄反了吧?一般我们习惯当DIN="0000"时,DOUT(0) = '0'

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;

entity Decoder is
port (
DIN : in std_logic_vector(3 downto 0);
DOUT_n : out std_logic_vector(15 downto 0)
);
end Decoder;

architecture Decoder_arch of Decoder is

begin

gen : for i in 0 to 15 generate
DOUT_n(i) <= '0' when DIN = i else '1';
end generate;

end Decoder_arch;

用VHDL实现4-16译码器
USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY decode4-16 IS PORT(a,b,c,d:IN STD_LOGIC;q:BUFFER STD_LOGIC_VECTOR(15 DOWNTO 0));END decode4-16 ;architecture behave of decode4-16 is signal indata:std_logic_vector(2 do...

分别用IF语句、CASE语句设计一个四-十六译码器。写出VHDL源程序!
use IEEE.std_logic_1164.all;entity encoder4_16 is port ( d: in STD_LOGIC_VECTOR (3downto0);q: out STD_LOGIC_VECTOR (15downto0));end encoder4_16;architecture encoder_if of encoder4_16 is begin process(d)begin if d="0000" then q<=(0=>'1',others=>'0');elsifd=...

关于vhdl的uniform函数
uniform就是来选取一个随机数,比如我在写4——16译码器的仿真程序,其中就要定义a,b,c,d四个信号,然后就像你说的用uniform函数,来生成随机数。截了一段代码:process is variable seed1, seed2 : positive := 1;variable rand : real;--定义变量 begin for i in 0 to 10 loop --循环...

如何用VHDL设计七段数码显示器的十六进制译码器,要求该译码器有三态输出...
用case语句就可以,当然也可以由with select,when。。。等语句。输出和数码管的接法有关,下面这个是我用case语句写的,是共阴的接法,共阳的话把q按位取反就是。我综合通过了。library ieee;use ieee.std_logic_1164.all;entity smg_16 is port( a:in std_logic_vector(3 downto 0);q:out...

4线16线译码器的芯片有哪些
2012-03-20 最佳答案 可用两个三八译码器组成 直接的4线16线译码器 型号也记不清楚了 本回答由网友推荐 举报| 答案纠错 | 评论 0 4 lcc23310 采纳率:33% 擅长: 暂未定制 其他回答 74LS1544线--16线译码器 简睿0613 | 发布于2013-06-27 举报| 评论 7 2 为...

将两个集成芯片74ls138组合成一个4线—16线译码器的电路图。。。_百度...
为您推荐: 用74ls138实现4-16 74LS20 74LS48芯片 74LS160芯片 164芯片的功能是什么 74LS112芯片是 芯片74LS194 74LS138 集成译码器74ls42 集成计数器74ls161是 其他类似问题2015-10-28 两片74LS138组成的4-16线译码器工作原理求解 76 2011-12-21 74ls138扩展为4线-16线译码器 48 2011-...

verilog语言实现3-8译码器
Verilog HDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司开发。两种HDL均为IEEE标准。【嵌牛正文】        3-8译码器的输入是3个脚,输出是8个脚。用高低电平来表示输入和输出。...

2-4译码器的VHDL描述
1.端口是bit类型,无需声明IEEE库和IEEE.STD_LOGIC.1164程序包。2.2-4译码器不是优先级结构,应当用case语句描述。3.字符串文字应当使用双引号。4.信号赋值号是“<=”,而不是“:<=”。ENTITY decoder24 IS PORT(s1,s2:IN bit;m:OUT bit_vector(3 downto 0));END;ARCHITECTURE be OF ...

求vhdl写的38译码器代码。
use IEEE.STD_LOGIC_1164.ALL;entity trans38 is port(A:in std_logic_vector(2 downto 0);EN:in std_logic;Y:out std_logic_vector(7 downto 0));end trans38;architecture dec_behave of trans38 is signal sel:std_logic_vector(3 downto 0);begin sel<=A&EN;with sel select Y<...

看看下面eda代码实现的功能
00000001”(标志出Y的第0位)当A=001时,Y输出为“00000010”(标志出Y的第1位)当A=010时,Y输出为“00000100”(标志出Y的第2位)。。。当输入为EN和A其他状态时,Y的输出值为“00000000”如果不明白的话可以给我留言或者自己再看一下关于译码器的VHDL实现的相关程序,应该就可以了。

相似回答