【FPGA】关于KC705开发板的差分时钟(主时钟为差分100M)

2023-10-15 14:20

本文主要是介绍【FPGA】关于KC705开发板的差分时钟(主时钟为差分100M),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写作时间:2020-03-08

开发环境:vivado2019.1

readme:

最近在学习FPGA,第一个实例当然是流水灯了,我已经将之整理为博客。
FPGA实现led流水灯 (工程+代码)
这个工程,使用的开发板,给FPGA的主时钟是单端时钟,然而我想把这个工程套用在xilinx KC705上,发现不是那么顺利。

我自己的开发板,主时钟是单端时钟,如下图:
在这里插入图片描述

因为KC705上的主时钟是差分时钟,如下图:
在这里插入图片描述
在这里插入图片描述

对于差分时钟,我们需要在==.v文件约束文件xdc==中修改下,才可以生成bit正常。
1).v文件 修改如下:

`timescale 1ns / 1ps
//
// Company:
// Engineer:
//module run_led(input sys_clk_p,input sys_clk_n,input RSTn_i,output reg [3:0]LED_o
);
//*********差分时钟这么处理***********
wire  CLK_i;
//对差分时钟采用IBUFGDS IP核去转换
IBUFGDS CLK_U(
.I(sys_clk_p),
.IB(sys_clk_n),
.O(CLK_i)
);
//**********************************
reg [31:0] Cnt;
always @(posedge CLK_i )if (RSTn_i==1)//复位begin LED_o<=4'b0001;end
elsebeginif (Cnt==32'd200_000_000)beginCnt<=32'd0;if(LED_o==4'b1000)beginLED_o<=4'b0001;endelse  begin  LED_o<=LED_o<<1'b1;endendelsebeginCnt<=Cnt+1'b1;LED_o<=LED_o;endendendmodule

2)约束文件xdc 修改如下:

#vivado管脚约束XDC文件
#*********差分时钟这么处理***********
set_property PACKAGE_PIN AD12 [get_ports {sys_clk_p}]
#//只需要约束p端
set_property IOSTANDARD DIFF_SSTL15 [get_ports {sys_clk_p}]
#//注意这里的电平标准
set_property IOSTANDARD DIFF_TERM true [get_ports {sys_clk_p}]
#//只需要约束p端
set_property SEVERITY {Warning} [get_drc_checks UCIO-1]   
#//可以忽略掉drc error
#**********************************#rst_n
set_property PACKAGE_PIN AG5 [get_ports RSTn_i]
set_property IOSTANDARD LVCMOS15 [get_ports RSTn_i]
#LED_o
set_property PACKAGE_PIN AB9 [get_ports {LED_o[3]}]
set_property IOSTANDARD LVCMOS15 [get_ports {LED_o[3]}]
set_property PACKAGE_PIN AC9 [get_ports {LED_o[2]}]
set_property IOSTANDARD LVCMOS15  [get_ports {LED_o[2]}]
set_property PACKAGE_PIN AA8 [get_ports {LED_o[1]}]
set_property IOSTANDARD LVCMOS15 [get_ports {LED_o[1]}]
set_property PACKAGE_PIN AB8 [get_ports {LED_o[0]}]
set_property IOSTANDARD LVCMOS15 [get_ports {LED_o[0]}]#set_property CONFIG_MODE <configuration_mode> [current_design]
#set_property BITSTREAM.CENERAL.COMPRESS TRUE [current_design]
set_property CFGBVS VCCO [current_design]
set_property CONFIG_VOLTAGE 3.3 [current_design]

这样修改后,bit 生成正确,流水灯跑起来了哈~~

其他项目中,FPGA的时钟为差分时钟的时候,完全可以套用本文方法。

补充:
关于复位,说明如下:
在这里插入图片描述
GPIO_SW_E是直接连接到FPGA管脚上,下拉到地,按键断开时,常为低电平。按键按下闭合,为高电平。
我们想要实现的就是,按键按下,为高电平时候,进行复位。


THE END~
在这里插入图片描述

【MATLAB-app】系列教程(含视频)00_csdn上第一套关于matlab appdesigner系列“视频课”来啦~~

【图像算法&MATLAB】一文讲明白:图像的直方图均衡化(附作者自编源代码)

【探测器与相机标准】我对图像(图像传感器/相机)“非均匀性”的理解与学习笔记

这篇关于【FPGA】关于KC705开发板的差分时钟(主时钟为差分100M)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/218278

相关文章

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

poj 3159 (spfa差分约束最短路) poj 1201

poj 3159: 题意: 每次给出b比a多不多于c个糖果,求n最多比1多多少个糖果。 解析: 差分约束。 这个博客讲差分约束讲的比较好: http://www.cnblogs.com/void/archive/2011/08/26/2153928.html 套个spfa。 代码: #include <iostream>#include <cstdio>#i

poj 3169 spfa 差分约束

题意: 给n只牛,这些牛有些关系。 ml个关系:fr 与 to 牛间的距离要小于等于 cost。 md个关系:fr 与 to 牛间的距离要大于等于 cost。 隐含关系: d[ i ] <= d[ i + 1 ] 解析: 用以上关系建图,求1-n间最短路即可。 新学了一种建图的方法。。。。。。 代码: #include <iostream>#include

POJ 1364差分约束

给出n个变量,m个约束公式 Sa + Sa+1 + .... + Sa+b < ki or > ki ,叫你判断是否存在着解满足这m组约束公式。 Sa + Sa+1   +   .+ Sa+b =  Sum[a+b] - Sum[a-1]  . 注意加入源点n+1 。 public class Main {public static void main(Strin

开发板NFS挂载文件目录

文章目录 序NFS1. 安装 NFS 服务器和客户端在服务器上(NFS 服务器端)在客户端上(NFS 客户端) 2. 配置 NFS 服务器创建共享目录编辑 `/etc/exports` 文件启动 NFS 服务 3. 在客户端挂载 NFS 共享创建挂载点挂载 NFS 共享验证挂载 4. 设置开机自动挂载5. 解决权限问题 序 本节主要实现虚拟机(服务器)与开发板(客户端)通过N

FPGA编译与部署方法全方位介绍

FPGA编译与部署是FPGA开发中的核心环节,涉及从代码编写、调试到将设计部署到FPGA硬件的全过程。这个流程需要经过创建项目、编写FPGA VI、模拟调试、编译生成比特流文件,最后将设计部署到硬件上运行。编译的特点在于并行执行能力、定制化硬件实现以及复杂的时钟管理。通过LabVIEW的FPGA模块和NI硬件,可以快速完成开发和部署,尤其适用于复杂控制与高性能数据处理系统。 1. FPG

FPGA开发:条件语句 × 循环语句

条件语句 if_else语句 if_else语句,用来判断是否满足所给定的条件,根据判断的结果(真或假)决定执行给出的两种操作之一。 if(表达式)语句; 例如: if(a>b) out1=int1; if(表达式)         语句1; else         语句2; 例如: if(a>b)out1=int1;elseout1=int2; if(表达式1) 语句1; els

安卓开发板_联发科MTK开发评估套件串口调试

串口调试 如果正在进行lk(little kernel ) 或内核开发,USB 串口适配器( USB 转串口 TTL 适配器的简称)对于检查系统启动日志非常有用,特别是在没有图形桌面显示的情况下。 1.选购适配器 常用的许多 USB 转串口的适配器,按芯片来分,有以下几种: CH340PL2303CP2104FT232 一般来说,采用 CH340 芯片的适配器,性能比较稳定,价

Python中差分进化differential_evolution的调用及参数说明

在场景应用中,要求我们的函数计算结果尽可能的逼近实际测量结果,可转化计算结果与测量结果的残差,通过最小化残差,便可求出最优的结果。但使用最小二乘等方法来计算时,常常会使迭代的结果显然局部最优点而导致结算错误。 差分进化原理 差分进化(Differential Evolution,DE)是一种基于群体差异的进化算法,其计算思想主要包括以下几个方面: 一、初始化种群 首先,随机生成一个初始种群

FPGA开发:模块 × 实例化

模块的结构 对于C语言,其基本单元为函数。与此类似,Verilog的基本设计单元称之为"模块"(block)。对于整个项目的设计思想就是模块套模块。 一个模块由两个部分组成:一部分描述接口,一部分描述逻辑功能。 每个Verilog模块包含4个部分:端口定义、IO说明、内部信号声明、功能定义。且位于module和endmodule之间,如下: module block(a,b,c);inpu