Xilinx FPGA 学习笔记一-chipscope 无法观察信号 BUFG

标签:
股票 |
分类: verilog |
转自:http://blog.csdn.net/lg2lh/article/details/45323361
今天开始试着使用chipscope,写了一个简单的流水灯的例程,开始综合布线的时候没有问题,但是加上chipscope 以后,综合就总报错。
第一种情况:用chipscope不可以直接观察全局时钟信号,即BUFG信号-----X
错误如下:
ERROR:Place:1136 - This
design contains a global buffer instance,
ERROR:Pack:1654 - The timing-driven placement phase encountered an
error.
这个错误找了一晚上,看到http://xilinx.eetrend.com/forum/6884 专家回复如下:
这个错误是提示你设计中将BUFG的输出连到了非时钟管脚,也就是ILA逻辑。在S6中,建议全局时钟输出只接时钟管脚,否则很难容易造成布线问题。
意思就是正常情况下chipscope无法观察BUFG后的信号,但也并不是真的就不可以,专家说:
网友博客http://blog.163.com/unregistered@yeah/blog/static/88629551201452611949339中描述了具体这种方法的实现:
ERROR:Place:1136 - This
design contains a global buffer instance,
处理过程:
另外:bufg输出的时钟可以作为chipscope
时钟,但是不能作为数据监控,我们可以assign
clk_temp=clk_bufg,监控clk_temp。这个我试了,好像不行
总之,chipscope不能直接观察BUFG的输出的全局时钟信号。
第二种情况 :FPGA的IO无法直接作为chipscope的采样时钟,否则会报如下入错,必须采用输入IBUF后的信号作为采样时钟,才不会报错。
ERROR:NgdBuild:924 - input
pad net 'i_clk' is driving non-buffer primitives:
先看我的源码,其中i_clk和i_ip是不能直接做采样时钟的
-
`timescale
1ns / 1ps -
//////////////////////////////////////////////////////////////////////////////////
-
//
Company: -
//
Engineer: -
//
-
//
Create Date: 19:26:57 04/11/2015 -
//
Design Name: -
//
Module Name: TOP -
//
Project Name: -
//
Target Devices: -
//
Tool versions: -
//
Description: -
//
-
//
Dependencies: -
//
-
//
Revision: -
//
Revision 0.01 - File Created -
//
Additional Comments: -
//
-
//////////////////////////////////////////////////////////////////////////////////
-
module
TOP( -
i_clk, -
i_ip, -
o_clk, -
o_led -
); -
-
input
i_clk,i_ip; -
output
o_clk; -
output
reg o_led; -
-
reg
[7:0] delay_cnt; -
wire
CLK_OUT1; -
(*
KEEP="TRUE"*) wire CLK_OUT2; -
-
always
@(posedge i_clk) -
begin
-
if(!i_ip) -
delay_cnt <= 8'h00; -
else if(delay_cnt==8'hff) -
begin -
delay_cnt <= 8'h00; -
end -
else -
begin -
delay_cnt <= delay_cnt+1'b1; -
end -
end
-
-
always
@(posedge i_clk ) -
begin
-
if(delay_cnt==8'hff) -
o_led <= ~o_led; -
else -
o_led <= o_led; -
end
-
endmodule
-
可以用http://img.blog.csdn.net/20150428014243190?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGcybGg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/CenterFPGA
第三种情况:用chipscope不可以直接观察FPGA的IO,与第二种情况类似,第二种情况不可用于采样,这里是不可以用于观察和触发。报错也是一样的:
ERROR:NgdBuild:924 - input pad net 'i_ip' is driving non-buffer
primitives:
同理观察相应的IBUF信号是可以的。但是如果这个IO为逻辑模块的时钟信号,其对应的IBUF也不能被观察。也就是i_ip_IBUF可以被观察,而i_clk_BUFGP不可以!!!