微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > DECODER5-32有错,新手,希望得到帮助

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

时间:10-02 整理:3721RD 点击:

  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;

复制代码

(标注红丝部分)定义最后的这个分号是不需要的

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top