zynq学习01 zynq 单独使用PL模块点亮led
对于xilinx的ZC706开发板单独使用PL做流水等试验的网上例程几乎是空白,大多数是PS+PL实验。如果是刚开始接触ZC706板,想写一个单独的PL程序时,你肯定以为很快就可以上手。但是如果你开始详细了解ZC706的核心芯片XC7Z045会发现一个关键性问题,就是时钟的使用。XC7Z045所使用PL时钟输入是以差分对的形式输入的,那在程序当中怎么搞嘞???疑惑???不解了吧?下面请看实例:
对于正常是时钟输入来说程序应该是这样的:
module led(
input sys_rst_n,
input sys_clk,
output [3:0] LD
);
reg [3:0] LD_reg;
reg [31:0] cnt;
assign LD = LD_reg;
always@(posedge sys_clk or negedge sys_rst_n)
begin
if(sys_reset_n == 1'b1)begin
LD_reg <= 4 'b1000;
cnt <= 32'b0;
end
else begin
if (cnt == 32'd25000000)begin
cnt <= 32'b0;
LD_reg <=(LD_reg>>1)|(LD_reg<<3);
end
else begin
cnt <= cnt + 32'b1;
end
end
end
endmodule
按照上面的程序去编译,如果是单信号时钟的芯片没有任何问题。但是这里我们的XC7Z045用的是差分对时钟输入,编译肯定是通不过的,一堆error是跑不了的。那问题来了,我们程序中的时钟是sys_clk但信号呀!?总不用两根时钟吧!况且又是差分对。那在想一想,将差分对时钟变成单信号时钟。如果你能这样想,那就是赞了。我们要做的就是这个。在讲这个之前我们得先要了解一下,xilinx对于差分信号所使用的相关原语。(所谓原语就是xilinx给你做的例化)。我这里提及主要两个例化:IBUFGDS,IBUFDS(关于他们的使用,请自行百度)。IBUFGDS是我们例程中所需要用到的原语,具体形式
IBUFGDSrefclk_ibuf ( .I(sys_clk_p), .IB(sys_clk_n),.O(sys_clk));
sys_clk_p,sys_clk_p是差分对输入,sys_clk为程序中定义的wire通过这个例化后我们就可以将差分对时钟转变成但信号时钟使用。具体范例如下:
moduleled(
input sys_rst_n,
input sys_clk_p,
input sys_clk_n,
output [3:0] LD
);
wiresys_clk;
wiresys_reset_n;
reg[3:0] LD_reg;
reg[31:0] cnt;
IBUFGDSrefclk_ibuf ( .I(sys_clk_p), .IB(sys_clk_n),.O(sys_clk));
IBUF sys_reset_n_ibuf (.O(sys_reset_n), .I(sys_rst_n));
assignLD = LD_reg;
always@(posedgesys_clk or negedge sys_reset_n)
begin
if(sys_reset_n == 1'b1)begin
LD_reg <= 4 'b1000;
cnt <= 32'b0;
end
else begin
if (cnt == 32'd25000000)begin
cnt <= 32'b0;
LD_reg<=(LD_reg>>1)|(LD_reg<<3);
end
else begin
cnt <= cnt + 32'b1;
end
end
end
endmodule
写到这里当然还没有完,我们还要做I/O的constraint,对于led管脚的分配不多说跟以前一样。差分对时钟的例化,我们要稍加注意要加上这句原语:
create_clock-period 10.000 -name sys_clk [get_ports sys_clk_p] (周期为10ns)
set_propertyPACKAGE_PIN H9 [get_ports sys_clk_p] 差分时钟只要写一个clk_P就行clk_n软件会自动链接。
到此各项工作就算大体完成,编译吧!!!
看完请点赞! 也是对本人的支持!!需要工程文件的到CSDN网站,搜素“xilinx PL单独模块流水灯实验”,上传者为本人账号名:“xunaiqun”;
zynq学习01 zynq 单独使用PL模块点亮led相关推荐
- zynq学习06 zynq的PL中加入的AXI_GPIO IP核来控制GPIO操作
http://m.blog.csdn.net/article/details?id=19934837 http://www.cnblogs.com/rocbomb/archive/2014/07/29 ...
- zynq学习04 zynq中PS通过MIO控制LED
http://m.blog.csdn.net/article/details?id=40954363 这几天在学习zynq,zynq芯片集成了两片arm a9的内核,和xilinx的fpga可编程部分 ...
- zynq学习03 zynq中三种实现GPIO的方式
http://m.blog.csdn.net/article/details?id=52123465 http://blog.chinaaet.com/songhuangong/p/43084 本文介 ...
- zynq学习05 Zynq 7000 emio的gpio操作
http://m.blog.csdn.net/article/details?id=44566855 本文讲述怎样使用emio功能的gpio,涉及到fpga部分,软件涉及到一级引导程序fsbl的创建及 ...
- OK6410开发板学习之外部中断(按键点亮led和蜂鸣器)
中断在嵌入式里面是很常见的一个功能了.通过这个功能,可以让CPU减轻很多负担,不用不断的查询设备的状态.提高了CPU的效率. 中断的大体过程如下: 中断源检测中断信号产生,然后将中断信号发送给中断控制 ...
- Clion编辑器的学习与实践之完成stm32F103点亮LED的程序
目录 一.安装环境 1.1 Clion 1.2 arm-none-eabi-gcc 1.3 STM32CubeMX 1.4 OpenOCD 1.5 MinGW 1.6 添加环境变量 二.配置Clion ...
- 【RK3399Pro学习笔记】十八、点亮LED灯(python、C语言、bash)
目录 GPIO python3 python-periphery python2 RPi C语言 SysFs方式 编写 gpiolib.c gpiolib.h main.c 编译 测试 wiringP ...
- ZYNQ学习之pl和ps接口
1.PL和PS的接口类型总共有两种: (1)功能接口:AXI.EMIO.中断.DMA流控制.时钟调试接口. (2)配置接口:PCAP.SEU.配置状态信号和Program/Done/Init信号.这些 ...
- ZYNQ学习之路17.自定义SDSoC硬件平台
前言 在前面的学习中,我们已经学会了使用Vivado及SDK开发环境,熟悉了硬件开发与Linux软件驱动之间的联系及开发流程.本系列教程我们学习SDSoc的开发,在SDSoc IDE中,Xilinx为 ...
最新文章
- docker 删除容器_Docker使用命令和技巧
- 将信息系学生的计算机文化学,计算机学生论文,关于基于职业岗位的计算机文化基础课教学相关参考文献资料-免费论文范文...
- 古典人像秒变3D,视角还能随意切,华为上交联手出品
- 接口隔离原则(ISP)
- 苏州大学计算机学院报录比,【图片】18年苏州大学计算机872考研经验分享【苏州大学研究生吧】_百度贴吧...
- 一个程序员的一些想法(二)
- SpringBoot集成Shiro进行权限控制和管理
- Spider局域网通讯软件
- 《面向对象分析与设计》一1.4面向对象方法的主要优点
- 关于蓝桥杯竞赛考试的一些信息~
- 语言技能c1,从0开始学法语,20个月考下DALF C1,我如何立竿见影学语言?
- onenote怎么同步到电脑_OneNote 同步最佳做法
- css3,环绕圆环 loading,小组件
- k8s-污点和容忍度
- 速卖通获得aliexpress商品详情 API
- Vue实现省、市、县三级联动
- Linux 简要大纲
- PostMessage,SendMessage,GetMessage,PeekMessage,TranslateMessage,DispatchMessage的用法集合
- pes2020服务器维护中,【重磅】PES2021删卡时刻/传奇及国际服补偿一览
- 游戏设计艺术 第2版 第31章 读书笔记
热门文章
- 标杆课程采访补充问题
- 什么样的电路仿真软件可以显示电流流动?
- QN8027输出调频分裂的频谱
- jmeter tps指标在哪里看_JMeter功能不够用?看这里
- linux5.5内核,一条命令就可以升级到Linux 5.5内核或Linux 5.5以上版本
- mysql 执行顺序 别名_sql语句的执行顺序和别名问题
- jmeter导入已有的脚本_jmeter导入badboy录制的脚本
- matlab 二分法求方程近似解
- Java查找数组重复元素,并打印重复元素、重复次数、重复元素位置
- pyhon 数据类型转换函数