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

转载请注明出处:http://blog.csdn.net/lg2lh/article/details/45323361

今天开始试着使用chipscope,写了一个简单的流水灯的例程,开始综合布线的时候没有问题,但是加上chipscope 以后,综合就总报错。

第一种情况:用chipscope不可以直接观察全局时钟信号,即BUFG信号-----X

错误如下:

ERROR:Place:1136 - This design contains a global buffer instance,
   <PLL_u0/clkout1_buf>, driving the net, <CLK_OUT1>, that is driving the
   following (first 30) non-clock load pins.
   < PIN: CLK_OUT1_INV_1_o1_INV_0.A6; >
   < PIN: U_ila_pro_0/U0/I_TQ0.G_TW[0].U_TQ.D; >
   This is not a recommended design practice in Spartan-6 due to limitations in
   the global routing that may cause excessive delay, skew or unroutable
   situations.  It is recommended to only use a BUFG resource to drive clock
   loads. If you wish to override this recommendation, you may use the
   CLOCK_DEDICATED_ROUTE constraint (given below) in the .ucf file to demote
   this message to a WARNING and allow your design to continue.
   < PIN "PLL_u0/clkout1_buf.O" CLOCK_DEDICATED_ROUTE = FALSE; >

ERROR:Pack:1654 - The timing-driven placement phase encountered an error.

这个错误找了一晚上,看到http://xilinx.eetrend.com/forum/6884 专家回复如下:

这个错误是提示你设计中将BUFG的输出连到了非时钟管脚,也就是ILA逻辑。在S6中,建议全局时钟输出只接时钟管脚,否则很难容易造成布线问题。 加CLOCK_DEDICATED_ROUTE的约束可以把这个错误降为告警,继续跑布局布线。需要注意的是,这个约束的作用并不是强制clk_we信号不通过BUFG,而是告诉工具忽略这类非优化的时钟资源使用问题。你可以通过FPGA Editor看到,clk_we还是上BUFG的。

意思就是正常情况下chipscope无法观察BUFG后的信号,但也并不是真的就不可以,专家说: 加CLOCK_DEDICATED_ROUTE的约束可以把这个错误降为告警

网友博客http://blog.163.com/unregistered@yeah/blog/static/88629551201452611949339中描述了具体这种方法的实现:

ERROR:Place:1136 - This design contains a global buffer instance,
   <
U_SYS_CLK/U_CLK/BUFG3>, driving the net, <clk100K>, that is driving the
   following (first 30) non-clock load pins.
   < PIN: U_ila_pro_0/U0/I_TQ0.G_TW[0].U_TQ.D; >
   This is not a recommended design practice in Spartan-6 due to limitations in
   the global routing that may cause excessive delay, skew or unroutable
   situations.  It is recommended to only use a BUFG resource to drive clock
   loads. If you wish to override this recommendation, you may use the
   CLOCK_DEDICATED_ROUTE constraint (given below) in the .ucf file to demote
   this message to a WARNING and allow your design to continue.
   < PIN "U_SYS_CLK/U_CLK/BUFG3.O" CLOCK_DEDICATED_ROUTE = FALSE; >

处理过程:
    1.按照提示 在ucf文件中加入:
                PIN "
U_SYS_CLK/U_CLK/BUFG3.O" CLOCK_DEDICATED_ROUTE = FALSE;
   但是抓取信号是,感觉这个时钟是50MHz时钟,而不我分频的100KHz时钟,抓取100KHz的信号竟然相同数据点出现了500个,果断怀疑有问题;
    2.用ue打开chipscope.cdc文件,发现其中一行为:
                Project.unit<0>.clockChannel=clk50M
   而我并未在chipscope中加clk50M时钟,于是上面一条修改为:
                Project.unit<0>.clockChannel=U_SYS_CLK clk100K
    3.结果测试正常。
另外: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<span style="color:#ff0000;"><span style="background-color: rgb(255, 255, 255);">
</span></span>

可以用i_clk的IBUF信号i_clk_BUFGP或者ip的IBUF后的信号i_ip_IBUF.就不会报警了。

第三种情况:用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不可以!!!


  • 12
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Xilinx FPGA工程例子源码 VERILOG设计源码78个合集: 1024点FFT快速傅立叶变换.zip AD7266的Verilog驱动程序.zip BOOTLOADER (基于Platform Flash).rar ChipScope使用示例.zip DDR SDRAM控制器verilog代码.zip DDR SDRAM控制器参考设计VHDL.zip DDR2 Controller.zip EDK9.1嵌入式开发实验代码.zip EDK中PS2自定义IP.zip FFT变换的IP核的源代码.zip FM收音机的解码及控制器VHDL语言实现.zip FPGA实现CAN总线控制器源码.rar FPGA语音通信平台设计实例.zip IP camera的开源系统.zip LCD IP CORE.zip LCD12864 在Spartan-3E实现代码.zip PCI Express IP核应用参考设计.zip PCI Express标准概述.zip PCIE DMA例子.zip PCI总线IP核(华为的商用).zip PCI的核.zip PICOBLAZE控制LCD1602的源码.zip PS2键盘控制程序.zip Sparten3E的EDK实验.zip System Generator的设计实例.rar The SDRAM controller is designed for the Virtex V300bg432-6.zip ucos_ii 在microblaze平台上的移植.zip USB IP核.zip USB2.0 IP核源代码.zip USB大容量存储开发板CPLD代码.zip USB接口应用系统设计实例.zip USB接口控制器参考设计VHDL代码(Xilinx).zip USB通信全套资料.zip Verilog实现闰年的判断(ISE8.21中调试通过).zip Verilog编写的信道估计.zip Verilog编写的基于SPARTAN板的VGA接口显示程序.zip VGA显示IP核(包括驱动).zip VHDL实现对图像的采集和压缩.zip VHDL编写的PCI代码(PCI2.2兼容).zip xilinx 3s400开发板厂家光盘源码(按键防抖动).zip Xilinx DDR2存储器接口调试代码.rar Xilinx DDR3最新VHDL代码(通过调试).rar Xilinx EDK工程一例MicroBlaze内置USB固件程序.rar Xilinx EDK设计试验.rar Xilinx ISE9.x FPGA_CPLD设计指南(原书光盘上的源码).zip Xilinx Sdram 参考设计:含Verilog和VHDL版本级详细说明文档.rar Xilinx SPARTAN-3E入门开发板实例.zip Xilinx sparten3E 键盘和开发板的通信和LCD的字符显示.zip Xilinx spratan3 xcs100E(VGA PS2).zip Xilinx TCP_IP协议实现.rar Xilinx 公司BASYs开发板自带的Demo程序.zip Xilinx 公司的加法器核.rar Xilinx 官方网站提供的一个利用DCT进行图像压缩的设计参考.rar Xilinx 提供的频率发生器的VHDL源码.zip Xilinx 提供的高速多状态编码8b_10b编码器.zip Xilinx 的Basys板VGA显示图片原码.zip Xilinx 的I2C工程.zip Xilinx 的IP:1024点FFT快速傅立叶变换.rar Xilinx 的用于设计SMBus控制器的源程序.zip Xilinx 高级试验的代码.rar Xilinx.CPLD源码参考设计.zip 兼容opencores.org的I2C slave的RTL代码.zip 在FPGACPLD中实现AD或DA的文章(英文Verilog).zip 在FPGA上实现CRC算法的程序.zip 基于FPGA_CPLD和USB技术的无损图像采集卡.zip 基于FPGA实时处理的双目测距系统.zip 基于Spartan3E的串口调试和检测程序.rar 基于Spartan3火龙刀系列FPGA开发板制作的VGA实验例程.rar 基于XILINX的SPARTAN板的VGA接口显示程序.rar 基于XILINX的XC3系列FPGA的VGA控制器的VHDL源程序.rar 实现在Sparton-3E板卡上的按键及开关的控制.zip 实现基于spartan3与CAN总线连接后的的汽车时速的模拟仿真.zip 扩频接收机设计实例.zip 摄像头的硬件函数(IP核).zip 用FPGA实现数字锁相环.zip 用FPGA模拟VGA时序,PS_2总线的键盘接口VHDL源

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值