时序分析9-I/O时序约束操作(TimeQuest)-I/O输出时序约束

例程代码:这是一个计数器,为了很好的演示时序约束,使用PLL IP核创建了一个时钟
在这里插入图片描述

第一个文件,也是顶层文件,count.v

module counter(Clk,rst_n,pio);

	input Clk;	//系统时钟,50M
	input rst_n;	//全局复位,低电平复位
	
	output  pio;	//led输出



wire clk9M;
		
ip_pll pll_9m(
	.inclk0(Clk),
	.c0(clk9M)
	);
			

counter_test asda
(
.Clk50M(clk9M),
.Rst_n(rst_n),
.led(pio)
);

		
endmodule


第二个文件代码,counter_test.v

module counter_test(Clk50M,Rst_n,led);

input Clk50M;	//系统时钟,50M
	input Rst_n;	//全局复位,低电平复位
	
	output reg led;	//led输出
	
	reg [24:0]cnt;	//定义计数器寄存器

//计数器计数进程	
	always@(posedge Clk50M or negedge Rst_n)
	if(Rst_n == 1'b0)
		cnt <= 25'd0;
	//else if(cnt == 25'd24_999_999)
	else if(cnt == 25'd24_999)
			cnt <= 25'd0;
	else
		cnt <= cnt + 1'b1;

			
//led输出控制进程
	always@(posedge Clk50M or negedge Rst_n)
	if(Rst_n == 1'b0)
		led <= 1'b1;
	//else if(cnt == 25'd24_999_999)
	else if(cnt == 25'd24_999)
		led <= ~led;
	else
		led <= led;
		
		
endmodule


编译后,在报告中可以看到有两个时钟
在这里插入图片描述

接下来,进行约束

首先打开TimeQuest软件
在这里插入图片描述
在这里插入图片描述
可以看到,目前还没有任何I/O的约束
在这里插入图片描述
开始进行约束
1,首先,创建生成时钟
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2,约束I/O
由于我们这个代码的要约束的引脚是输出型,所以约束output delay

在这里插入图片描述
在这里插入图片描述
先约束最大输出延迟,所以现在Maximum
在这里插入图片描述
源同步模型中
建立时间中,最大输出延迟output delay max = Tdata(pcb) -Tclk2(ext) + Tsu
保持时间中,最小输出延迟output delay min = Tdata(pcb) - Tclk2(ext) - Th
当数据线的长度与时钟线的长度相等时,即Tdata(pcb) == Tclk2(ext)
最大输出延迟output delay max = Tdata(pcb) -Tclk2(ext) + Tsu,即output delay max = Tsu
最小输出延迟output delay min = Tdata(pcb) - Tclk2(ext) - Th,即output delay min = -Th
这里假设数据线的长度与时钟线的长度相等,另外从数据手册中看到Tsu=0.2ns,Th=1.5ns
所以
在这里插入图片描述
目标端口选择想要约束的端口,这里选择pio
在这里插入图片描述
在这里插入图片描述
接着约束最小输出延迟
在这里插入图片描述
在这里插入图片描述

约束完,我们查看下报告,有建立时间和保持时间的,可以看到Slack没有变红色,而且余量值还挺大,说明没问题

在这里插入图片描述
如果存在问题,我们会看下Timing report
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

约束完后,生成SDC文件,然后在Quartus需要设置下
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
再打开TimeQuest软件查看Report All I/O Timings
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值