关于时钟输入引脚为n时的调试

1、在xilinx fpga中,当输入时钟为单端时,手册上推荐时钟输入引脚为p,当输入时钟引脚为n时会对系统造成什么样的影响
2、新建工程
源码
module clk_test(
input wire clk_sys,
output wire clk_out1,
input wire clk_in1,
output wire clk_out2
);

wire clk_out1_bufg;

clk_wiz_0 clk_wiz_0_inst(
.clk_out1(clk_out1_bufg),
.clk_sys(clk_sys)
);

ODDR#(
.DDR_CLK_EDGE(“OPPOSITE_EDGE”), // “OPPOSITE_EDGE” or “SAME_EDGE”
.INIT(1’b0), // Initial value of Q: 1’b0 or 1’b1
.SRTYPE(“SYNC”) // Set/Reset type: “SYNC” or “ASYNC”
)
ODDR1_inst (
.Q(clk_out1), // 1-bit DDR output
.C(clk_out1_bufg), // 1-bit clock input
.CE(1’b1), // 1-bit clock enable input
.D1(1’b0), // 1-bit data input (positive edge)
.D2(1’b1), // 1-bit data input (negative edge)
.R(1’b0), // 1-bit reset
.S(1’b0) // 1-bit set
);

wire clk_in1_bufg;

BUFG BUFG_inst (
.O(clk_in1_bufg), // 1-bit output: Clock output
.I(clk_in1) // 1-bit input: Clock input
);

ODDR#(
.DDR_CLK_EDGE(“OPPOSITE_EDGE”), // “OPPOSITE_EDGE” or “SAME_EDGE”
.INIT(1’b0), // Initial value of Q: 1’b0 or 1’b1
.SRTYPE(“SYNC”) // Set/Reset type: “SYNC” or “ASYNC”
)
ODDR2_inst (
.Q(clk_out2), // 1-bit DDR output
.C(clk_in1_bufg), // 1-bit clock input
.CE(1’b1), // 1-bit clock enable input
.D1(1’b0), // 1-bit data input (positive edge)
.D2(1’b1), // 1-bit data input (negative edge)
.R(1’b0), // 1-bit reset
.S(1’b0) // 1-bit set
);
3、在这里插入图片描述
4、管脚约束
set_property PACKAGE_PIN B17 [get_ports clk_out1]
set_property PACKAGE_PIN A17 [get_ports clk_in1]
set_property PACKAGE_PIN F22 [get_ports clk_sys]
set_property PACKAGE_PIN A18 [get_ports clk_out2]
set_property IOSTANDARD LVCMOS33 [get_ports clk_in1]
set_property IOSTANDARD LVCMOS33 [get_ports clk_out1]
set_property IOSTANDARD LVCMOS33 [get_ports clk_out2]
set_property IOSTANDARD LVCMOS33 [get_ports clk_sys]

set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets clk_in1]
5、大致说明 全局时钟输入25Mhz,clk_out1输出50Mhz,板卡飞线clk_out1 ——>clk_in1 这样就完成了p输出n输入,完成后理论上clk_out2的输出也应该时50Mhz输出。
6、将程序下载到板卡,示波器测量clk_out2。
在这里插入图片描述
7、可知并未对功能造成实质的影响
8、目测问题就是时序不太好。
Resolution: Poor placement of an IO pin and a BUFG has resulted in the router using a non-dedicated path between the two. There are several things that could trigger this DRC, each of which can cause unpredictable clock insertion delays that result in poor timing. This DRC could be caused by any of the following: (a) a clock port was placed on a pin that is not a CCIO-pin (b)the BUFG has not been placed in the same half of the device or SLR as the CCIO-pin © a single ended clock has been placed on the N-Side of a differential pair CCIO-pin.
This is normally an ERROR but the CLOCK_DEDICATED_ROUTE constraint is set to FALSE allowing your design to continue. The use of this override is highly discouraged as it may lead to very poor timing results. It is recommended that this error condition be corrected in the design.
9、
在这里插入图片描述

### N32L436RB引脚图及说明 对于N32L436RB微控制器而言,其封装形式决定了具体的引脚布局。通常情况下,这类微控制器采用的是LQFP64封装,具有多达64个引脚,这些引脚被分配给不同的功能模块以便于实现多样化的外设接口需求[^1]。 #### 主要引脚分类及其用途 - VDD, VSS:用于提供工作电压和接地连接。 - **时钟输入/输出** - OSC_IN, OSC_OUT:外部晶振连接子,支持多种频率范围内的晶体或陶瓷谐振器接入;也可以作为PLL源使用内部RC振荡器来驱动系统时钟。 - **复位信号** - NRST:低电平有效复位引脚,在此状态下MCU会重新启动程序执行流程。 - **调试接口** - SWDIO/SWCLK:线调试模式下的数据传输线路以及同步时钟脉冲序列。 - **通用I/O口(GPIOs)** - PAx/PBx/PCx…等多组并行排列的双向可编程数字量输入输出通道,部分还可以复用为特定的功能如UART、SPI、I²C通讯总线或是PWM定器输出等功能角色转换。 - **模拟输入** - ADCn:模数转换器对应的采样入口,能够接收来自传感器或其他外围设备产生的连续变化电信号,并将其量化成离散数值供后续处理元解析运算之需。 - **其他专用功能引脚** - 如BOOT0:引导加载选择开关,决定器件上电后是从内置Flash还是SRAM开始运行应用程序代码。 为了更直观地理解上述描述的内容,可以参考下述简化版引脚分布示意: | 引脚编号 | 名称 | 功能描述 | | -------- | ---------- | -------------------------------- | | 1 | VDD | 工作电压正极 | | ... | | | | 7 | BOOT0 | 引导加载选择 | | 8 | NRST | 复位 | | ... | | | | 15 | OSC_IN | 晶体振荡器输入 | | 16 | OSC_OUT | 晶体振荡器输出 | | ... | | | | 29 | PA0 | GPIO_A第0位 | | ... | | | 请注意实际产品手册中的详细规格表可能会更加详尽复杂,建议查阅官方文档获取最准确完整的资料。 ```c // 示例代码展示如何初始化某个GPIO引脚为输出模式 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值