ZHULUSHENG
驱动牛犊
驱动牛犊
  • 注册日期2003-10-27
  • 最后登录2006-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:1756回复:3

帮我看看这个程序?(50分感谢)

楼主#
更多 发布于:2004-04-28 16:52
CP为10M方波输入,PLUSEX为输出。程序本身没太多用途,但为何不行???
  XC2S15 -5 TQ144  
  ISE 6


entity XC2S151 is
    Port (
CP  :  IN STD_LOGIC ;  --CLK
CP5:OUT STD_LOGIC;
PLUSEX : OUT STD_LOGIC;
);
end XC2S151;

architecture Behavioral of XC2S151 is

SIGNAL QN :STD_LOGIC_VECTOR (3 DOWNTO 0);
SIGNAL CP1,CP2,RST,CONXA,CONXB:STD_LOGIC;
SIGNAL COUNTER :STD_LOGIC_VECTOR (15 DOWNTO 0);
SIGNAL CP11,CP22 :STD_LOGIC;
SIGNAL DLY :STD_LOGIC

begin

 
 PROCESS(CP,RST)                    --- 十分频
  BEGIN
   IF RST=\'1\'THEN
QN<=\"0000\";
ELSIF CP\' EVENT AND CP=\'1\' THEN
 QN<=QN+1;
 END IF;
END PROCESS;

RST<=\'1\' WHEN QN=10 ELSE
    \'0\';
 CP2<=QN(2);
 CP5<=CP2;  

      PROCESS(CP2)
  BEGIN
  IF CP2\' EVENT AND CP2=\'0\' THEN
    IF CONXA=\'1\' THEN
  CONXB<=\'0\';
ELSE
  CONXB<=\'1\';
END IF;
  END IF;
       END PROCESS;

 PROCESS(CP2)
  BEGIN
  IF CP2\' EVENT AND CP2=\'1\' THEN
    IF CONXB=\'1\' THEN
  CONXA<=\'1\';
ELSE
  CONXA<=\'0\';
END IF;
  END IF;
       END PROCESS;

PROCESS(CONXA,CONXB)
 BEGIN
             PLUSEX<=CONXA XOR CONXB;
           END PROCESS;
end Behavioral;

如此简单的程序,在MAP时出错:

Started process \"Map\".

Using target part \"2s15tq144-6\".
ERROR:MapLib:93 - Illegal LOC on IPAD symbol \"CP\" or BUFGP symbol \"CP_BUFGP\"
   (output signal=CP_BUFGP), IPAD-IBUFG should only be LOCed to GCLKIOB site.

Error found in mapping process, exiting...
Errors found during the mapping phase.  Please see map report file for more
details.  Output files will not be written.

Design Summary
--------------
Number of errors   :   1
Number of warnings :   0
ERROR: MAP failed
Process \"Map\" did not complete.

Mapping Module xc2s151 . . .
MAP command line:
map -intstyle ise -p xc2s15-tq144-6 -cm area -pr b -k 4 -c 100 -tx off -o xc2s151_map.ncd xc2s151.ngd xc2s151.pcf
Mapping Module xc2s151: failed



不知道为何,请指点!!

不知道还有没有更好的输出方波的办法???
luorenfei
驱动小牛
驱动小牛
  • 注册日期2003-02-17
  • 最后登录2006-11-30
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-04-29 16:58
三个错误:
1)你没有加:
       lIBRARY ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
2)PLUSEX : OUT STD_LOGIC;
);
括号前多了一个分号
3)SIGNAL DLY :STD_LOGIC
末尾少了一个分号


改过之后map 没有问题了,不要忘了给分哦
luorenfei
驱动小牛
驱动小牛
  • 注册日期2003-02-17
  • 最后登录2006-11-30
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-04-29 16:59
程序最好写规范点
ZHULUSHENG
驱动牛犊
驱动牛犊
  • 注册日期2003-10-27
  • 最后登录2006-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-04-29 21:14
谢谢你!你上面提到的错误我还看的出来。
是我复制过来时出的错。
但是如果是这样的话,综合时早就提示错误了,肯定不能到 MAP这一步。
  问题我找到了,是属于CP由于扇出太多,被ISE自动指定为全局时钟,但我的CP没有连接到GCLK 管脚。
游客

返回顶部