Vivado将.v文件作为模块加入Block Design

2023-10-28

  用Vivado开发ZYNQ时,常用到Block Design。Block Design中不仅仅可以添加IP核,还可以将未封装成IP的.v或.vhd文件作为模块加入其中。我们以往Block Design中加一个闪灯的模块为例,说明如何向Block Design添加.v文件模块。
1、启动Vivado,创建一个工程,并创建一个Block Design和一个led.v文件。下面贴出led.v和约束文件的代码。

//led.v
`timescale 1ns / 1ps 
module led 
#(
    parameter FREQ = 32'd49_999_999//这个参数可以在Block Design中修改
)
(
    input sys_clk,
    output reg [1:0] led
    );
reg[31:0] timer_cnt;
always@(posedge sys_clk)
begin
    if(timer_cnt >= FREQ)
    begin
        led <= ~led;
        timer_cnt <= 32'd0;
    end
    else
    begin
        led <= led;
        timer_cnt <= timer_cnt + 32'd1;
    end
    
end
endmodule
set_property IOSTANDARD LVCMOS33 [get_ports {led[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports sys_clk]
set_property PACKAGE_PIN G14 [get_ports {led[1]}]
set_property PACKAGE_PIN M15 [get_ports {led[0]}]
set_property PACKAGE_PIN K17 [get_ports sys_clk]
create_clock -period 20.000 -name sys_clk -waveform {0.000 10.000} [get_ports sys_clk]

led.v还没添加入Block Design,这两个模块是平级的,如下图所示。
在这里插入图片描述2、右键点击led.v,点击"Add Module to Block Design",将led.v作为模块加入到Block Design中。这时可以看到led.v和Block Design的层次关系。
在这里插入图片描述在这里插入图片描述3、引出led_0模块的sys_clk和led[1:0]的引脚,方法是右击引脚点击“Make External”。然后给引出的引脚改名字,和约束文件中的引脚名称相同。
在这里插入图片描述led.v的模块中有一个参数,这个参数的值可以双击led_0模块,然后修改,如下图所示。
在这里插入图片描述
4、执行Wrapper、Generate、分析、综合、实现、生成bitstream等操作。最后将bitstream下载进开发板看一下现象,两个灯以0.5Hz的频率闪烁。可以在Block Design中改一下FREQ参数的值,再看看LED闪烁的情况。
  我这里的例子比较简单,复杂点儿的工程,比如有一个PS模块,也是可以这样向Block Design添加.v文件的。这种不封装IP,直接添加.v文件作为模块的方法可以比较灵活的修改还没有调试好的模块,等到所有bug都解决后再将.v文件封装成IP核。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vivado将.v文件作为模块加入Block Design 的相关文章

  • STA(静态时序分析) 详解:如何计算最大时钟频率,以及判断电路是否出现时钟违例(timing violation)?

    1 什么是STA STA 静态时序分析 是时序验证的一种方法 用于计算和分析电路是否满足时序约束的要求 2 为什么需要STA 电路能否正常工作 其本质上是受最长逻辑通路 即关键路径 的限制 以及受芯片中存储器件的物理约束或工作环境的影响 为
  • cdc多bit信号-握手处理

    对于多bit数据跨时钟 各个bit之间路径延迟不一样 源时钟域给的数据是2 b11 目的时钟域采样到的数据可能2 b10 因此两级触发器对于单bit数据跨时钟是可以用的 但是对于多bit数据跨时钟就会出错 握手处理的关键是利用源的时钟req
  • verilog中wire和reg类型的区别

    module counter parameter CNT MAX 25 d24 999 999 input wire sys clk input wire sys rst n output reg led out reg 24 0 cnt
  • FPGA(3)验证数字逻辑(与门、与非门、二选一数据选择器、2-4译码器、半加器、全加器)

    目录 一 验证与门 二 验证与非门 三 验证二选一数据选择器 四 验证2 4译码器 五 验证半加器 六 验证全加器 0 初始化定义 1 第一个半加器 2 第二个半加器 3 得到最终进位Co 代码 0决定与 1决定或 一 验证与门 只要有一个
  • Verilog之assign

    Verilog中的关键词assign主要用于如下两个地方 数据流建模 用于数据流建模的显示连续赋值语句语法格式如下
  • Verilog的基础知识

    Verilog的基本介绍 硬件描述语言发展至今已有二十多年历史 当今业界的标准中 IEEE标准 主要有VHDL和Verilog HDL 这两种硬件描述语言 一个设计往往从系统级设计开始 把系统划分成几个大的基本的功能模块 每个功能模块再按一
  • win10下安装vivado 2018.3之后ise14.7 的impact 无法使用

    软件版本号 操作系统win10 ise14 7 vivado 2018 3 ise14 7 在win10里面问题总结 1 ise14 7 闪退问题 比较好解决 论坛上比较多的解决方法 2 ise 14 7 windows 10 版本的ise
  • FPGA Xilinx 7系列高速收发器GTX通信

    Xilinx 7系列高速收发器GTX 说明 FPGA TX端 zynq 7z035 RX端 zynq 7z100 两个FPGA通过SFP 光纤 接口相连进行GTX的通信 环境 Vivado2018 2 IP核 7 Series FPGAs
  • libero-soc许可证申请和环境配置

    环境 64位机 在哪台电脑上安装libero soc 就用哪台电脑申请许可证 1 注册 https www microsemi co 在官网注册 之后申请的许可证会发到注册时填写的邮箱 2 申请许可证 https www microsemi
  • [HDLBits] Exams/ece241 2014 q7a

    Design a 1 12 counter with the following inputs and outputs Reset Synchronous active high reset that forces the counter
  • 【PIPE】流水线设计中的基本模块

    大概分成以下几节 1 概述及协议 2 valid forward valid超前 3 bubble collapse 消除气爆 4 input output skid 不知中文怎么说 5 pipe halt 流水停顿 6 idle pres
  • [从零开始学习FPGA编程-38]:进阶篇 -语法-函数与任务

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 目录 前言 第1章 什么是函数Function 1 1 什么是函数 1 2 函
  • 64 位 ALU 输出在 TestBench 波上显示高阻抗

    我必须制作一个 64 位 ALU 它接受 A 和 B 64 位输入 进位输入输入并输出 64 位结果以及 1 位进位输出 还有一个 5 位功能选择 FS 其中 FS 0 控制 B 是否反转 使用 2to1 多路复用器 F 1 对 A 执行相
  • 异步FIFO设计之格雷码

    目录 二进制转格雷码 格雷码转二进制 相邻的格雷码只有1bit的差异 因此格雷码常常用于异步fifo设计中 保证afifo的读地址 或写地址 被写时钟 或读时钟 采样时最多只有1bit发生跳变 在不考虑路径延时的情况下 因为源数据 读写地址
  • VHDL - PhysDesignRules:367

    当我尝试从 VHDL 代码合成 实现和生成程序文件时 我收到警告 当我尝试合成时出现此错误 WARNING Xst 647 Input
  • PyOpenCL 中的时间测量

    我正在 FPGA 和 GPU 中使用 PyOpenCL 运行内核 为了测量执行所需的时间 我使用 t1 time event mykernel queue c width c height block size block size d c
  • 如何使用 Verilog 和 FPGA 计算一系列组合电路的传播延迟?

    我是 FPGA 和 HDL 的新手 但我正在尝试学习 但无法弄清楚这一点 如何通过多个级别的组合逻辑来计算或估计传播延迟 我可以仅凭经验确定这一点 还是可以在设计时弄清楚 在这种情况下 我使用 FPGA 来实现奇偶校验设置和检查电路 该电路
  • verilog $readmemh 对于 50x50 像素 RGB 图像花费太多时间

    我正在尝试编译用于 FPGA 编程的 verilog 代码 我将在其中实现 VGA 应用程序 我使用 QuartusII 和 Altera 我正在尝试正确使用 readmemh 来逐像素获取图片 现在 我已经使用 matlab 将图片转换为
  • FPGA大输入数据

    我正在尝试向 FPGA 发送 4 KB 字符串 最简单的方法是什么 是我正在使用的fpga的链接 我正在使用 Verilog 和 Quartus 您的问题的答案在很大程度上取决于将数据输入 FPGA 的内容 即使没有您需要遵守的特定协议 S
  • 从 OpenCV 代码到 FPGA 代码的转换是否比 Matlab 代码更容易? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想做一个关于图像处理的项目 我想知道如果我想在FPGA上实现这个项目 我应该在第一阶段选择Matla

随机推荐

  • 数据分析流程

    数据分析流程 1 明确分析目的与框架 2 数据收集 3 数据处理 4 数据分析 5 数据展现 6 撰写报告 数据分析流程概括起来主要包括明确分析目的与框架 数据收集 数据处理 数据分析 数据展现和撰写报告6个阶段 1 明确分析目的与框架 明
  • AI厂工什么时候开始赛博搬砖?

    最近两个月 二次元们找到了AI的 正确用法 玩梗 以造梗最多的NovelAI为例 无论你投喂什么图片 AI都能二次元化 输出精美中不失离谱的图片 你猜它们的原图是什么 这只是大量AI作画正面案例里的一个少数 最近两个月 AI作画带着大量梗图
  • 二十四. Kubernetes 安全

    目录 一 一 官方文档 k8s中不管是外部通过ui管理端操作 还是通过命令行 再或者集群内部执行的操作指令 所有指令都会发送给ApiServer 即使是pod也会被集群认为是一个用户 会给这个用户颁发一个ServiceAccount服务账号
  • STM32 BootLoader跳转之前关闭全部中断

    关闭全局中断 DISABLE INT 关闭滴答定时器 复位到默认值 SysTick gt CTRL 0 SysTick gt LOAD 0 SysTick gt VAL 0 设置所有时钟到默认状态 使用HSI时钟 HAL RCC DeIni
  • CSS自己实现一个步骤条

    前言 步骤条是一种用于引导用户按照特定流程完成任务的导航条 在各种分步表单交互场景中广泛应用 例如 在HIS系统 门诊医生站中的接诊场景中 我们就可以使用步骤条来实现 她的执行步骤分别是 门诊病历 gt 遗嘱录入 gt 完成接诊 我们发现
  • 华为OD机试真题 Java 实现【货币单位换算】【2023Q1 100分】

    一 题目描述 记账本上记录了若干条多国货币金额 需要转换成人民币分 fen 汇总后输出每行记录一条金额 金额带有货币单位 格式为数字 单位 可能是单独元 或者单独分 或者元与分的组合要求将这些货币全部换算成人民币分 fen 后进行汇总 汇总
  • 使用docker进行部署hadoop

    使用docker进行部署hadoop 安装docker wget qO https get docker com sh 安装完成后 要启动docker服务 sudo service docker start 查看是否运行成功 ps aux
  • C++——函数指针

    在C 中 函数指针是指向函数的指针变量 它允许将函数作为参数传递给其他函数 动态选择调用的函数以及在运行时改变函数的行为 函数指针的声明和使用如下所示 1 声明函数指针类型 returnType pointerName parameterT
  • 我的一路走来@电子信息工程和嵌入式该怎么入门

    嵌入式该怎么学 嵌入式从何学起 嵌入式入门需不需要报培训机构 哪个培训机构好点 还有一些是咨询电子信息工程专业的情况等等 这些问题几乎每天都在我的 嵌入式的世界 百度知道团队会遇到和看到的一些问题 归根结底是咨询嵌入式该如何入门 电子信息工
  • js中通过window.location.href和document.location.href、document.URL获取当前浏览器的地址的值,它们的的区别

    1 document表示的是一个文档对象 window表示的是一个窗口对象 一个窗口下可以有多个文档对象 所以一个窗口下只有一个window location href 但是可能有多个document URL document locati
  • HTML+CSS字体文本

    声明 本人的所有博客皆为个人笔记 作为个人知识索引使用 因此在叙述上存在逻辑不通顺 跨度大等问题 希望理解 分享出来仅供大家学习翻阅 若有错误希望指出 感谢 HTML文本标签 文本级语义标签包括 a 超连接 em 侧重点的强调 可嵌套 表现
  • Laya实现控制杆控制3D模型旋转

    export default class JoyStick constructor mod this model mod 模型 this scale Laya Browser width 1920 this rockerBtnOrigin
  • uniapp App权限判断和提示

    1 下载组件App权限判断和提示 DCloud 插件市场 2 导出到需要判断的项目里面 import permision from js sdk wa permission permission js 3 判断是否开启权限 async re
  • 图书馆管理系统 Java

    目录 要求 代码 Operate接口 Book类 Reader类 BookList类 ReadList 类 Infor类 InforList类 main 功能实现 改进 错误 总结 要求 为图书管理人员编写一个图书管理系统 图书管理系统的设
  • 分布式接口幂等性设计实现

    面对分布式架构和微服务复杂的系统架构和网络超时服务器异常等带来的系统稳定性问题 分布式接口的幂等性设计显得尤为重要 本文简要介绍了几种分布式接口幂等性设计实现 包括Token去重机制 乐观锁机制 数据库主键和状态机实现等 以加深理解 1 分
  • WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

    使用SCP命令时出现这个错误 解决办法 rm ssh known hosts
  • 《动手学深度学习 Pytorch版》 3.7 softmax回归的简单实现

    import torch from torch import nn from d2l import torch as d2l batch size 256 保持批量大小为 256 train iter test iter d2l load
  • 【解决】idea启动spring MVC报错:一个或多个listeners启动失败Listener ClassNotFoundException

    idea 2023配置教程 tomcat调试报错Artifact war exploded Error during artifact deployment 修改代码后 启动不生效 仍是旧代码 根本原因是 Modules output pa
  • 16.Linux网络编程

    一 TCP IP理论基础 1 协议栈 Linux的优点之一就是在于它丰富而稳定的网络协议栈 其范围是从协议无关层 如通用的socket层接口和设备层 到各种网络协议的实现 2 协议介绍 对于网络理论介绍一般采用OSI模型 但是Linux中网
  • Vivado将.v文件作为模块加入Block Design

    用Vivado开发ZYNQ时 常用到Block Design Block Design中不仅仅可以添加IP核 还可以将未封装成IP的 v或 vhd文件作为模块加入其中 我们以往Block Design中加一个闪灯的模块为例 说明如何向Blo