Electronics 版 (精华区)

发信人: dsp (Z族@ Z~笨笨), 信区: Electronics
标  题: [合集]急救!!vhdl中的一个错误
发信站: 哈工大紫丁香 (2003年11月30日22:24:08 星期天), 站内信件


────────────────────────────────────────
 kidkid (victor)                      于 Sat Nov 29 18:53:04 2003 说道:

程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

Library IEEE ;
use IEEE.std_logic_1164.all ;

ENTITY test IS
PORT
(    clock_rd      : in  std_logic;  
         D    : out std_logic_vector(7 downto 0);
      MD        : in  std_logic_vector(7 downto 0)

);
END test ;

ARCHITECTURE maxpld OF test IS

BEGIN
 
process(clock_rd) --datas to be readed
begin

     if clock_rd='0'  then
D <=MD;
      else
D<= "ZZZZZZZZ";
end if; 

end process;
           
END maxpld;

出现如下错误提示:
Else clause following a clock edge must hold the state of signal "D"

这是什么意思啊
请大虾指教。偶都快急晕了
多谢了!!




────────────────────────────────────────
 ids (Plan9)                          于 Sat Nov 29 21:15:25 2003 说道:

程序没问题,你用的是什么编译器或仿真器
【 在 kidkid 的大作中提到: 】
: 程序如下:
: library ieee;
: use ieee.std_logic_1164.all;
: use ieee.std_logic_unsigned.all;

: Library IEEE ;
: use IEEE.std_logic_1164.all ;

: ENTITY test IS
:  PORT
:  (    clock_rd      : in  std_logic;  
:          D    : out std_logic_vector(7 downto 0);
:       MD        : in  std_logic_vector(7 downto 0)

:  );
: END test ;

: ARCHITECTURE maxpld OF test IS

: BEGIN
: (以下引言省略...)

────────────────────────────────────────
 freebird (远)                        于 Sun Nov 30 09:18:45 2003 说道:

作如下修改!!!

【 在 kidkid 的大作中提到: 】
: 程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

Library IEEE ;
use IEEE.std_logic_1164.all ;

ENTITY test IS
PORT
(    clock_rd      : in  std_logic;  
         D    : out std_logic_vector(7 downto 0);
      MD        : in  std_logic_vector(7 downto 0)

);
END test ;

ARCHITECTURE maxpld OF test IS

BEGIN
 
process(MD) --datas to be readed
       ~~~~ (将clock_rd改为MD)可以实现和你现在程序同样的功能!
begin

     if clock_rd='0'  then
D <=MD;
      else
D<= "ZZZZZZZZ";
end if; 

end process;
           
END maxpld;

────────────────────────────────────────
 laughter (笑面人生)                  于 2003年11月30日14:35:35 星期天 说道:

(1)if语句的条件修改一下
if (clock_rd'event and clock_rd='0')then
再试一下
clock作为process的敏感信号时,要有事件发生说明
(2)或者不把clock作为敏感信号,
【 在 kidkid (victor) 的大作中提到: 】
: 程序如下:
: library ieee;
: use ieee.std_logic_1164.all;
: use ieee.std_logic_unsigned.all;

: Library IEEE ;
: use IEEE.std_logic_1164.all ;

: ENTITY test IS
:   PORT
:   (    clock_rd      : in  std_logic;  

────────────────────────────────────────
 kidkid (victor)                      于 Sun Nov 30 20:13:07 2003 说道:

谢谢各位的帮助!!!!
【 在 dsp 的大作中提到: 】
: 程序如下:
: library ieee;
: use ieee.std_logic_1164.all;
: use ieee.std_logic_unsigned.all;

: Library IEEE ;
: use IEEE.std_logic_1164.all ;

: ENTITY test IS
:  PORT
:  (    clock_rd      : in  std_logic;  
:          D    : out std_logic_vector(7 downto 0);
:       MD        : in  std_logic_vector(7 downto 0)

:  );
: END test ;

: ARCHITECTURE maxpld OF test IS

: BEGIN
: (以下引言省略...)

────────────────────────────────────────
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.177毫秒