DECODER5-32有错,新手,希望得到帮助

2019-07-16 02:00发布

本帖最后由 风在飞 于 2012-11-11 22:40 编辑
  1. library ieee;
  2. use ieee.std_logic_1164.all;
  3. use ieee.std_logic_unsigned.all;
  4. use ieee.std_logic_arith.all;
  5. entity decoder5_32 is
  6.       port(e,f,g,h:in std_logic;
  7.            enable:in std_logic;
  8.             yy:out std_logic_vector(31 downto 0);
  9.            );
  10. end entity decoder5_32;

  11. architecture art5_32 of decoder5_32 is
  12.         component decoder4_16 is
  13.               
  14.                      PORT (a:IN STD_LOGIC;
  15.                          b:IN STD_LOGIC;
  16.                          c:IN STD_LOGIC;
  17.                          d:IN STD_LOGIC;
  18.                          en:IN STD_LOGIC;
  19.                          y:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);
  20.                          );
  21.         end component deccoder4_16;
  22.       
  23.   begin
  24.   U1:decoder4_16 port map(a=>e,b=>f,c=>g,d=>h,en=>enable,y=>yy(31 downto 16));
  25.   U2:decoder4_16 port map(a=>e,b=>f,c=>g,d=>h,not en=>enable,y=>yy(15 downto 0));
  26. end architecture art5_32;
复制代码Error (10500): VHDL syntax error at decoder5_32.vhd(9) near text ")";  expecting an identifier, or "constant", or "file", or "signal", or "variable"
Error (10500): VHDL syntax error at decoder5_32.vhd(21) near text ")";  expecting an identifier, or "constant", or "file", or "signal", or "variable"
-----------------------------------
下面是decoder4-16
  1. LIBRARY IEEE;
  2. USE IEEE.STD_LOGIC_1164.ALL;
  3. USE IEEE.STD_LOGIC_ARITH.ALL;
  4. USE IEEE.STD_LOGIC_UNSIGNED.ALL;
  5. ENTITY decoder4_16  IS
  6.     PORT (a:IN STD_LOGIC;
  7.           b:IN STD_LOGIC;
  8.           c:IN STD_LOGIC;
  9.           d:IN STD_LOGIC;
  10.           en:IN STD_LOGIC;
  11.           y:OUT STD_LOGIC_VECTOR(15 DOWNTO 0));
  12. END ENTITY decoder4_16;
  13. ARCHITECTURE ar1 OF decoder4_16 IS
  14.     SIGNAL si1:STD_LOGIC_VECTOR(4 DOWNTO 0);
  15. BEGIN
  16.     si1<=en & d & c & b & a;
  17.     WITH si1 SELECT
  18.         y<="1111111111111110"WHEN"10000",
  19.            "1111111111111101"WHEN"10001",
  20.            "1111111111111011"WHEN"10010",
  21.            "1111111111110111"WHEN"10011",
  22.            "1111111111101111"WHEN"10100",
  23.            "1111111111011111"WHEN"10101",
  24.            "1111111110111111"WHEN"10110",
  25.            "1111111101111111"WHEN"10111",
  26.            "1111111011111111"WHEN"11000",
  27.            "1111110111111111"WHEN"11001",
  28.            "1111101111111111"WHEN"11010",
  29.            "1111011111111111"WHEN"11011",
  30.            "1110111111111111"WHEN"11100",
  31.            "1101111111111111"WHEN"11101",
  32.            "1011111111111111"WHEN"11110",
  33.            "0111111111111111"WHEN"11111",
  34.            "1111111111111111"WHEN OTHERS;
  35. END ARCHITECTURE ar1;
复制代码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
youzizhile
1楼-- · 2019-07-16 04:22
           yy:out std_logic_vector(31 downto 0);

09.           );

10. end entity decoder5_32;

11.

12.architecture art5_32 of decoder5_32 is

13.        component decoder4_16 is

14.              

15.                     PORT (a:IN STD_LOGIC;

16.                         b:IN STD_LOGIC;

17.                         c:IN STD_LOGIC;

18.                         d:IN STD_LOGIC;

19.                         en:IN STD_LOGIC;

20.                         y:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);

(标注红丝部分)定义最后的这个分号是不需要的
youzizhile
2楼-- · 2019-07-16 04:39
U2:decoder4_16 port map(a=>e,b=>f,c=>g,d=>h,not en=>enable,y=>yy(15 downto 0));

这个not不能这样直接使用。需要现在别处处理或者在子程序中处理。

一周热门 更多>