Vivado 使用教程

Vivado 使用教程

目录

一、创建工程

二、创建文件

三、编写代码

四、仿真验证

五、配置管脚

六、生成Bitstream文件并烧录

一、创建工程

1.左边创建(或打开)工程,右侧可以快速打开最近打开过的工程。

2.来到这一步,命名工程并设置工程的存放路径(这里以D触发器为例)

3.选择RTL点击next。会来到添加文件环节(可以在这里添加.v等文件,不过后面再添加是一样的)直接点击next

4.选择芯片型号(根据开发板选,这里随便选的)完成后点next会弹出信息概要,finish完成。

       

二、创建文件

完成上述步骤会进入当前界面:

1.工程管理器add sourse添加(创建)设计文件,创建文件后选择Verilog语言并命名。

2.定义端口(可选),若在这定义后,文件会自动生成端口定义的代码,比自己敲省时间更方便。

(端口没有说明类型即默认wire类型,可根据情况定义reg类型:“output reg q”)

         

3.设计文件创建完成

三、编写代码

1.代码以D触发器为例:

`timescale 1ns / 1ps //timescale 时间单位/精度 module dff( //D触发器 input wire clk, //时钟信号 input wire d, //输入信号 output reg q, //输出信号 output reg q_n //输出信号取反 ); always@(posedge clk) begin q <= d; q_n <= !d; end endmodule

2.保存后编译(Run Synthesls),再修改报错直到通过。

        图示两处都是编译。点击后来到右图点OK,Number of Jobs 即 CPU 工作线程数,这个与电脑配置有关,配置越高可选数量越多(下图二片标注有误忽略,应该是工作线程数,我忘记改了)。编译的报错可在massage里面查看,尤其注意 error。

四、仿真验证

1.编译成功后创建仿真文件并完成代码编写,参考“步骤二”中设计文件的创建:

( 需选择 “add or create simulate sourse” 

  test bench 代码如下:

`timescale 1ns / 1ps //timescale 时间单位/精度 module dff_tb( ); //仿真一般无端口列表 reg clk_sim; reg d_sim; wire q_sim; wire q_n_sim; always #10 clk_sim = ~clk_sim; //每10个时间单位对clk进行翻转,即周期为20个单位 initial begin clk_sim = 0; d_sim = 0; #20; //延时20个时间单位(20ns) d_sim = 1; #40; d_sim = 0; #100; $stop; //停止仿真 end dff dff( //模块例化: 原模块名----在顶层文件中命名为 .clk (clk_sim), //原模块端口名----要连接的端口名 .d (d_sim), .q (q_sim), .q_n (q_n_sim) ); endmodule

2.保存后编译(Run Synthesls),再修改报错直到通过。

3.波形仿真 点击Run Simulation

(注意1:当有多个tb文件时,选中要仿真的tb文件 右键设为"active")

(注意2:vivado仿真上限时间在tool-setting-simulation中设置,仿真波形不全看看是否不够)

波形如图,每当clk上升沿到来时q输出d的值,说明代码实现D触发器的功能无误。

五、配置管脚

1.Run implement(跑成功后会解锁Run simulation里最后两个禁用的仿真选项,一般也用不到)

2.跑完后点击上图Open Implement Design文字,再到状态栏点击Window - I/O Ports

分配引脚(分配过的Fixed栏会自动打勾),设置相关参数(通常I/O standar 为LVCOMS33)。

3.ctrl+s保存,并完成命名后OK会生成XDC约束文件,约束文件打开位置见图二

六、生成Bitstream文件并烧录

1.生成bit流文件

2.如图示步骤点击,自动连接硬件,确保开发板已连接且通电否则识别不到。

3.烧录:连接开发板后会在这里出现芯片型号(对应新建工程时选择的型号),右键型号后点击“Program Device”再点Program烧录。

Read more

Zvec 架构深度解析:阿里巴巴开源的轻量级进程内向量数据库

Zvec 架构深度解析:阿里巴巴开源的轻量级进程内向量数据库 Zvec 是阿里巴巴开源的一个轻量级、闪电般快速的进程内向量数据库。本文将深入分析 Zvec 的代码架构,揭示其核心设计理念和技术实现细节。 一、项目概览 1.1 核心特性 Zvec 基于 Alibaba 久经考验的 Proxima 向量搜索引擎构建,提供生产级的低延迟、可扩展的相似度搜索能力: * 极致性能:毫秒级搜索数十亿级向量 * 简单易用:无需服务器配置,零依赖安装 * 混合向量支持:同时支持稠密向量(Dense)和稀疏向量(Sparse) * 混合搜索:语义相似度 + 结构化过滤 * 随处运行:嵌入到应用进程内运行 1.2 技术栈 组件技术语言C++17构建系统CMakePython绑定Pybind11存储引擎RocksDB向量索引Proxima (IVF, HNSW, Flat)序列化Protobuf压缩LZ4位图CRoaring距离计算SIMD 加速 1.3

By Ne0inhk

VideoAgentTrek-ScreenFilter创新场景:VR录屏中虚拟屏幕边界检测

VideoAgentTrek-ScreenFilter创新场景:VR录屏中虚拟屏幕边界检测 1. 引言:当VR录屏遇到屏幕检测难题 想象一下,你正在体验一款沉浸式的VR游戏,或者在进行一场虚拟现实会议。结束后,你想把这段精彩的体验录下来分享给朋友。但当你回看录屏时,发现画面里不仅有VR应用本身的内容,还混杂着电脑桌面、任务栏、甚至其他无关的窗口边框。这些“屏幕外的屏幕”破坏了沉浸感,也让视频显得杂乱不专业。 这就是VR内容创作者和开发者经常遇到的痛点。传统的录屏软件只能录制整个显示器区域,无法智能识别并聚焦在真正的VR应用窗口上。手动裁剪不仅费时费力,而且在视频时长较长或窗口位置变化时,几乎无法实现精准处理。 今天要介绍的 VideoAgentTrek-ScreenFilter,正是为解决这个问题而生。它不是一个普通的屏幕检测工具,而是专门针对“录屏中的屏幕”这一特殊场景进行优化的智能解决方案。无论是静态的截图,还是动态的录屏视频,它都能准确识别出画面中的屏幕边界,为后续的智能裁剪、内容聚焦或隐私处理提供关键数据。 2. VideoAgentTrek-ScreenFilt

By Ne0inhk
2025保姆级微信AI群聊机器人教程:教你如何本地打造私人和群聊机器人

2025保姆级微信AI群聊机器人教程:教你如何本地打造私人和群聊机器人

微信AI机器人-人工智能技术,为用户提供服务的自动化系统:具备自然语言处理技术、理解用户的文本输入,并给出响应的回复或执行特定的任务能力。 AI机器人能24小时提供实时服务,无论何时何地,用户都能获得及时的信息反馈和帮助。节省了用户搜索时间,提高了效率,并且还可以帮助管理社群,提高社群活跃度。 一、去千帆大模型官网申请API 1、在模型广场搜索ERNIE-Lite(免费),点击体验 2、点击应用接入,填入必填项,点击创建(需要实名认证)  3、获取API KEYI和Secret Key  二、打开pycharm,运行以下程序 一、完整代码展示 注:运行代码前请登录PC端微信,否则会运行失败 import requests import json import csv import os import schedule import time from wxauto import

By Ne0inhk