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

Flash Table实测:JAI赋能低代码开发,重塑企业级应用构建范式

Flash Table实测:JAI赋能低代码开发,重塑企业级应用构建范式

目录 * 🔍 引言 * 1.1 什么是Flash Table * 1.2 低代码平台的进化与FlashTable的革新 * ✨FlashTable背景:为什么需要新一代低代码平台? * 2.1 传统开发的痛点 * 2.2 低代码平台的局限 * 2.3 FlashTable的差异化定位 * 💻 FlashTable安装:Docker部署&Jar包部署 * 3.1 基础环境要求 * 3.2 Docker部署(推荐方案) * 3.3 Jar包部署(无Docker环境) * 3.4 常见问题 * 📚FlashTable功能深度评测:从案例看真实能力 * 4.1 数据孤岛?FlashTable 自动化匹配字段 * 4.2 FlashTable复杂表单的开发挑战 * 4.3

By Ne0inhk
【数据库】国产数据库的新机遇:电科金仓以融合技术同步全球竞争

【数据库】国产数据库的新机遇:电科金仓以融合技术同步全球竞争

7月15日,国产数据库厂商中电科金仓(北京)科技股份有限公司(以下简称“电科金仓”)在北京举行了一场技术发布会,集中发布四款核心产品:AI时代的融合数据库KES V9 2025、企业级统一管控平台KEMCC、数据库一体机(云数据库AI版)以及企业级智能海量数据集成平台KFS Ultra,并同步举行了“金兰组织2.0”启动仪式。 如果放在过去几年,这场发布会可能被归入“信创替代”的常规范畴。但这一次,电科金仓试图讲述的不再是“我们也能做、我们可以兼容”,而是“我们能不能定义下一代数据库形态”。 整个发布会贯穿了三个关键词:“融合”“AI”“平台能力”。这背后的核心逻辑是清晰的:在“去IOE”与“兼容Oracle”的红利渐近尾声之际,国产数据库厂商开始面对一个更加复杂、也更具挑战性的市场命题——如何在大模型时代支撑非结构化数据、高维向量检索和复杂语义计算的新需求? 正如我国数据库学科带头人王珊教授所说,数据库内核与AI能力的深度结合,已成为释放数据核心价值的关键路径,正催生着更智能、更自适应、更能应对复杂挑战的新一代数据库形态。

By Ne0inhk
免费部署openClaw龙虾机器人(经典)

免费部署openClaw龙虾机器人(经典)

前几天出了个免费玩龙虾的详细教程,很多小伙伴觉得不错,但是还有一些新手留言反馈内容不够详细,这次我将重新梳理一遍,做一期更细致的攻略,同时扩展补充配置好之后的推荐(我认为是必要)操作,争取一篇文章让大家可以收藏起来,随时全套参照复用。 先看效果测试 部署完成基础运行效果测试,你可以直接问clawdbot当前的模型: 1.Token平台准备 首先,还是准备好我们可以免费撸的API平台 这里我找到了两个可以免费使用的API,测试之后执行效率还可以,下面将分别进行细致流程拆解。 1.1 硅基流动获取ApiKey (相对免费方案 推荐) 硅基流动地址:https://cloud.siliconflow.cn/i/6T57VxS2 如果有账号的直接登录,没有的注册一个账号,这个认证就送16元,可以直接玩收费模型,真香。认证完成后在API秘钥地方新建秘钥。 硅基流动里面很多模型原来是免费的,有了16元注册礼,很多收费的模型也相当于免费用了,我体验一下了原来配置免费模型还能用,也是值得推荐的。建议使用截图的第一个模型体验一下,我一直用它。 1.2 推理时代

By Ne0inhk
Flutter 三方库 bavard 的鸿蒙化适配指南 - 实现语义化的聊天消息协议、支持机器人自动回复逻辑与分布式通讯元数据封装

Flutter 三方库 bavard 的鸿蒙化适配指南 - 实现语义化的聊天消息协议、支持机器人自动回复逻辑与分布式通讯元数据封装

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 bavard 的鸿蒙化适配指南 - 实现语义化的聊天消息协议、支持机器人自动回复逻辑与分布式通讯元数据封装 前言 在进行 Flutter for OpenHarmony 的社交或客户支持类应用开发时,除了核心的 WebSocket 传输,如何规范化定义“消息(Message)”的数据结构以及处理复杂的对话逻辑状态,往往决定了项目的后期维护性。bavard 是一个专为高度语义化聊天交互设计的协议封装库。它能让你在鸿蒙端以极具逻辑感的对象模型来驱动对话流。本文将带大家了解如何利用 bavard 构建标准化的聊天架构。 一、原理解析 / 概念介绍 1.1 基础原理 bavard 将一次对话拆解为“参与者(Participants)”、“话题(Topics)”和“原子消息(Discrete Messages)”。它提供了一套完整的状态机,用于驱动从“

By Ne0inhk