【IC设计】ZC706板卡点灯入门(含Verilog代码,xdc约束,实验截图)

2023-11-08

这篇博客将针对AMD Zynq 7000 SoC ZC706 Evaluation Kit板卡(对应Vivado创建工程时FPGA型号:XC7Z045ffg900-2)实现基本的点灯程序。

假定已知的前置知识

本文对以下内容不再介绍,

  • 使用Vivado进行综合、实现、生成比特流并烧录FPGA
  • FPGA的概念、Verilog的基础语法

在这里插入图片描述

需求:

板卡时钟为200MHz,让板子上的一个LED灯保持0.5秒亮,0.5秒灭。

注意点:

①板卡使用JTAG接口烧录时,必须将SW4拨为01,如图所示:
在这里插入图片描述
②ZC706的时钟都是差分时钟,必须使用Verilog原语将其转换为单端时钟才可以直接使用:

IBUFGDS IBUFGDS_inst(
    .O(single_clock),    //Clock buffer Output
    .I(clk_p),  //Diff_p clock buffer input (connect directly to top-level port)
    .IB(clk_n)  //Diff_n clock buffer input(connect directly to top-level port)
);

其中IBUFGDS是Xilinx的原语,不需要引入IP,可以直接使用。

③对于200MHz的时钟,即每秒运行210^8个周期,想要每0.5s亮,0.5秒灭,就是要求每0.5秒将led取反一次,
那么应当让计数器,计数到1
10^8个周期时对led取反。

代码实现:

顶层模块

`timescale 1ns / 1ps
module top_module(
    input clk_n,
    input clk_p,
    input rst_b,
    output led
);
    wire single_clock;
    IBUFGDS IBUFGDS_inst(
        .O(single_clock),    //Clock buffer Output
        .I(clk_p),           //Diff_p clock buffer input (connect directly to top-level port)
        .IB(clk_n)           //Diff_n clock buffer input(connect directly to top-level port)
    );
    Hello hello_inst(
        .clock(single_clock),
        .reset(rst_b),
        .io_led(led)    
    );
    
endmodule

led闪烁模块

module Hello(
  input   clock,
  input   reset,
  output  io_led
);
  reg [31:0] cntReg; 
  reg  blkReg; 
  wire [31:0] _cntReg_T_1 = cntReg + 32'h1; 
  assign io_led = blkReg; 
  always @(posedge clock) begin
    if (reset) begin 
      cntReg <= 32'h0; 
    end else if (cntReg == 32'd100_000_000) begin 
      cntReg <= 32'h0; 
    end else begin
      cntReg <= _cntReg_T_1; 
    end
    if (reset) begin 
      blkReg <= 1'h0; 
    end else if (cntReg == 32'd100_000_000) begin 
      blkReg <= ~blkReg;
    end
  end
endmodule

xdc约束

#绑定复位按钮
set_property PACKAGE_PIN AK25 [get_ports rst_b]

#设置复位按钮的IO电压为2.5V
set_property IOSTANDARD LVCMOS25 [get_ports rst_b]

#对Verilog中的led端口和板卡上的Y21灯进行绑定
set_property PACKAGE_PIN Y21 [get_ports led]

#设置IO电压为2.5V
set_property IOSTANDARD LVCMOS25 [get_ports led]

#clk_p和clk_n是两个差分时钟信号,要通过IBUFGDS原语转化到单端时钟再使用
set_property PACKAGE_PIN H9 [get_ports clk_p]
set_property PACKAGE_PIN G9 [get_ports clk_n]
set_property IOSTANDARD LVDS [get_ports clk_p]
set_property IOSTANDARD LVDS [get_ports clk_n]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【IC设计】ZC706板卡点灯入门(含Verilog代码,xdc约束,实验截图) 的相关文章

  • Verilog实例-AMBA(AHB)协议

    目录 一 简介 1 1 AHB 1 2 signal list 1 3 Bus interconnection 总线互联 1 4 Overview of AMBA AHB operation 1 4 1 Basic transfer 1 4
  • 硬件基础知识

    SPI是串行外设接口 Serial Peripheral Interface 的缩写 是一种高速的 全双工 同步的通信总线 SCLK SCLK是一种有固定周期并与运行无关的信号量 CLK CLK是一种脉冲信号 TDNN 时延神经网络 它的两
  • 笔试

    文章目录 前言 40 复位电路设计 1 recovery time和removal time 2 同步复位和异步复位 3 异步复位同步释放 本文参考 往期精彩 前言 嗨 今天来学习复位电路设计相关问题 微信关注 FPGA学习者 获取更多精彩
  • 最详细的Vivado安装教程

    V i v a d o 安 装
  • 实验1-FPGA编程入门

    文章目录 一 认识全加器 二 输入原理图实现1位加法器 一 半加器原理图输入 二 全加器原理图输入 三 Verilog语言实现全加器 四 总结 五 资料参考 一 认识全加器 一 半加器 1 逻辑分析 如下图所示 半加器只有两个输入和两个输出
  • 理解一维卷积

    根据我个人的经验和偏好 理解数学概念的最好方式之一就是赋予其物理意义 把f t 看做输入 g t 看做系统的衰减系数 卷积就比较好理解了 在某一时刻n 该系统对f n 的响应值就是f n xg 0 但系统的总输出C n 不仅跟当前输入的f
  • 上拉电阻和下拉电阻

    一 定义 上拉电阻 将一个不确定的信号 通过一个电阻与电源VCC相连 固定在高电平 下拉电阻 将一个不确定的信号 通过一个电阻与地GND相连 固定在低电平 二 作用 提高输出信号驱动能力 确定输入信号电平 防干扰 限流 阻抗匹配 抗回波干扰
  • 握手2倍速率进,一倍速率出[verilog]

    module two to one parameter WORD LEN 33 input clk input arst input 2 WORD LEN 1 0 i din input i din valid output o din r
  • 吃透Chisel语言.18.Chisel模块详解(五)——Chisel中使用Verilog模块

    Chisel模块详解 五 Chisel中使用Verilog模块 上一篇文章讲述了用函数实现轻量级模块的方法 可以大幅度提升编码效率 Chisel中也提供了一些好用的函数 方便我们编写代码 也方便Chisel编译器优化生成的硬件电路 在Chi
  • TestBench编写_激励产生

    TestBench编写 激励产生 TestBench编写 激励产生 基本背景 读取函数介绍 a fopen函数使用 b fread函数使用 c fclose函数使用 实际使用 TestBench编写 激励产生 基本背景 最近遇到项目中需要对
  • xilinx xdma PCIe中断bug

    xilinx xdma PCIe中断存在bug bug1 此中断虽然是msi或者msx中断 但是不中断cpu bug2 此中断不是边沿中断 而是电平中断 在驱动层需要不断地轮训查询中断事件 bug3 此中断持续时间必须长 而且在收到中断应答
  • 【FPGA】面试问题及答案整理合集

    面试问题及答案整理合集 1 硬件描述语言和软件编程语言的区别 2 FPGA选型问题 3 建立时间和保持时间问题 3 亚稳态问题 4 竞争和冒险问题 5 乒乓操作问题 6 同步和异步逻辑电路 7 同步复位和异步复位 8 MOORE 与 MEE
  • [从零开始学习FPGA编程-28]:进阶篇 - 基本组合电路-奇偶校验生成器(Verilog语言版本)

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 目录 第1章 奇偶校验生成器 1 1 什么是奇校验 1 2 Verilog语言描述
  • 从零开始zynq linux AXI DMA传输

    本文从0开始叙述过程 使用的工具为vivado2016 4 sdk也是2016 4 准备工作 首先下载如下的目标文件 1 下载xilinx官方的bootloader文件 git clone https github com Xilinx u
  • 使用七牛云进行文件上传

    目录 一 七牛云入门测试 1 注册七牛云账号 完成后选择对象存储 2 在里面创建空间 一个空间相当于一个文件夹 就是将对象上传到的地方 3 查看个人秘钥 注册完成账号后 会有一个秘钥 上传文件的时候进行授权和认证 4 文件上传测试 二 封装
  • ALLEGRO等长时如何将PIN DELAY和VIA长度计算在内

    在PCB设计中 对于时序要求严格的线路 Via和IC pin delay的长度必须得到重视 通过下面的操作 可将Via和Pin delay加入到线路长度的计算中 1st 计算Pin delay 打开Constraint Manager 选择
  • 硬核 | 从零制作一个激光雷达需要多久?

    编辑 ADS智库 点击下方 卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 硬件交流 技术交流群 本文只做学术分享 如有侵权 联系删文 激光雷达 LiDAR 是激光探测及测距系统的简称 目前广泛应用在无
  • 【ZYNQ学习】PL第一课

    这节课讲什么 这节课的名字本来是想写为LED 但这一课里除了LED也有按键 又想换为GPIO控制 但关于PL的GPIO控制 不应该这么草率和简单 而且这一课有很多和ZYNQ或者PL关联性不强的东西要说 所以我写了删删了写改了好几遍 终于定为
  • MINI-UTDE 10 BASE-T 集成控制器

    MINI UTDE 10 BASE T 集成控制器 MINI UTDE 10 BASE T 拥有多达三个本地I O板和远程I OS总线通信 为用户提供了一系列生产单元功能的单一控制点 包括诸如夹头 反馈器和辅助机器等外围生产设备 支持所有主
  • TRICONEX MA2211-100 芯片上相互连接

    TRICONEX MA2211 100 芯片上相互连接 TRICONEX MA2211 100 所有相同的组件 io的电源 处理器 和内存将需要 但是 你可以看到所有这些带存储器和处理器的OO板 针不能嵌入到一个小的单片机上 现在是 普拉克

随机推荐

  • Mysql Sql查询之Limit 用法

    面试题 你知道mysql 中limit的用法吗 你是怎么使用的 在一条sql语句中 limit 1 表示什么 limit 1 3 又是什么意思 这道题本人答的很烂 在mysql中 limit关键字主要用于指定查询结果从哪条记录开始显示 一共
  • java流与文件——读写二进制数据(DataOutput + DataInput)

    0 README 0 1 本文描述转自 core java volume 2 旨在理解 java流与文件 读写二进制数据 DataOutput DataInput 的相关知识 0 2 for complete my diy code ple
  • 树莓派3B+内核编译

    获取内核源码 https github com raspberrypi 选着linux工程代码 https github com raspberrypi linux 版本分支选择rpi 4 14 y 获取内核配置文件 如果已经有内核配置文件
  • ChatGPT的各项超能力从哪儿来?万字拆解追溯技术路线图来了

    作者 符 尧 彭昊 Tushar Khot 郭志江等 符尧 yao fu ed ac uk 爱丁堡大学 University of Edinburgh 博士生 本科毕业于北京大学 他与彭昊 Tushar Khot在艾伦人工智能研究院 All
  • 使用postman实现文件上传与下载

    文件上传 1 设置KEY值为Content Type VALUE值为multipart form data 2 选择Body 类型为form data KEY值下拉选择为file 这样VALUE就会出现选择按钮 最重要的是 KEY值的fil
  • 黑盒测试和白盒测试定义及区别

    简单了解一下黑盒测试和白盒测试 一 定义 1 1黑盒测试 黑盒测试又称为功能测试 主要检测软件的每一个功能是否能够正常使用 在测试过程中 将程序看成不能打开的黑盒子 不考虑程序内部结构和特性的基础上通过程序接口进行测试 检查程序功能是否按照
  • React TypeScript 定义组件的各种方式

    目录 举例说明 1 使用 class 定义 2 使用函数定义 2 1 使用普通函数 2 2 使用函数组件 举例说明 比如我们要定义一个计数器 Counter 它包含一个 label 和一个 button 计数器的初始值由外部传入 点击 bu
  • Java中面向对象详解

    一 成员和局部 成员 也叫全局 分为成员变量和成员方法 定义在类中 方法之外的变量和方法 局部 定义在方法中的 成员变量和局部变量的区别 1 使用范围的区别 成员变量可以在类中的任何方法中使用 局部变量只能在定义它的方法中使用 2 默认值
  • VS2017 编译CGAL4.14.0 64位静态库

    VS2017 编译CGAL4 14 0 64位静态库 下载安装CGAL 4 14 Setup exe 如果下载的是源码压缩包 auxiliary目录下第三方库需要自己编译 打开 安装目录 INSTALL md 按照要求下载编译依赖包 本文编
  • 网站套了cloudflare cdn以后如何获取到用户真实ip

    找到nginx设置 配置修改 或者进入宝塔面板 软件商店 运行环境 nginx 设置 接下来点击 配置修改 然后找到http代码段插入如下代码 set real ip from 0 0 0 0 0 real ip header X Forw
  • HNU小学期计算机系统设计与创新基础训练——基于STC学习板的加密信息存储与游戏操作系统(第二部分实现方式+代码讲解)

    整个工程链接见文章末尾 HNU小学期计算机系统设计与创新基础训练 加密信息存储与游戏操作系统 第二部分 六 实现方式及关键代码 1 变量定义及对应功能 宏定义 变量定义 2 定时器 3 数码管 4 导航按键 4 1 初始化 4 2 获取AD
  • springboot处理请求转发与请求重定向应该这样写

    springboot处理请求转发与请求重定向应该这样写 在没有应用springboot的时候 在servlet中请求转发与重定向是这样写的 导入相关的两个包 import javax servlet http HttpServletRequ
  • 博客目录导读

    文章目录 一 linux代码如何编写记录系列 1 linux驱动代码 2 linux应用代码 二 内核源代码分析 1 linux内存管理系列 2 linux虚拟文件系统 3 linux中断 4 linux内核启动流程 5 linux内核锁
  • UE4 蓝图制作伤害数值

    UE4 蓝图制作伤害数值 新建一个数值的UI 再把内容绑定事件 公开两个变量 用来设置UI的显示数值和生成的位置 还可以加一个动画 我这里是一个向上飘动的动画 点 号新建HUD 再设置到游戏模式方便调用 调用CreateDamage 就生成
  • jsp页面可以在浏览器中运行但无法在eclipse内部显示

    之前在Eclipse中运行一个最简单的jsp页面时 一直显示页面无法正常显示 但是将路径拷贝到浏览器中就可以运行了 这是因为eclipse使用的是操作系统内置的浏览器 所以需要修改内置浏览器配置 command R gt 输入inetcpl
  • Android11获取当前手机已安装应用列表

    最近在上架GooglePlay 奈何Google8月份刚发布的审核警告 Google也说了能适用的APP类型如下 其实 QUERY ALL PACKAGES 这个权限是针对 Android11以及以上系统获取不全当前手机已安装app列表添加
  • chatgpt不好使?那是你不会问,github上收集的100多种问法,让你快速玩转chatgpt

    你觉得没什么可用 是因为你不会用 github上大牛门收集的一百多种问法 快去试试吧 原文地址 https github com f awesome chatgpt prompts 由于是官方问法 有些问法在国内版本可能不太好用 自行调整问
  • 有效需求分析培训梳理(一)

    根据徐锋老师的 有效需求分析 以及参加老师两天的现场培训整理 业务驱动的需求思想 1 澄清问题 a 原始需求是什么层次 方案级 问题级 b 想要解决谁的 什么问题 c 用户现在遇到这个问题会采用什么样的解决方案 d 这个问题中有需要进一步细
  • Stream API ( Java 8 )

    Stream API 简介 Stream API是Java8中的新特性 基于Lambda表达式 对Collection 集合 的各种操作有了很大的改变 极大的提升了编码效率和代码的可读性 Stream有串行和并行两种模式 并行模式会自动创建
  • 【IC设计】ZC706板卡点灯入门(含Verilog代码,xdc约束,实验截图)

    文章目录 假定已知的前置知识 需求 注意点 代码实现 顶层模块 led闪烁模块 xdc约束 这篇博客将针对AMD Zynq 7000 SoC ZC706 Evaluation Kit板卡 对应Vivado创建工程时FPGA型号 XC7Z04