【基于zynq的卷积神经网络加速器设计】(一)熟悉vivado和fpga开发流程:使用Vivado硬件调试烧写hello-world led闪烁程序实现及vivado软件仿真_zynq加速神经网络-程序员宅基地

技术标签: 卷积神经网络  vivado  fpga  IC  zynq  加速器  

HIGHLIGHT:

  • vivado设计流程:
    在这里插入图片描述
    note:
    分析与综合 和 约束输入 可以调换顺序

【基于zynq的卷积神经网络加速器设计】(一)熟悉vivado和fpga开发流程:使用Vivado硬件调试烧写hello-world led闪烁程序实现及vivado软件仿真

一、硬件调试

(一)新建工程

  1. new project
    在这里插入图片描述
  2. next
    在这里插入图片描述
  3. 编辑,然后next
    在这里插入图片描述
  4. 勾选创建完工程再添加文件
    在这里插入图片描述
  5. 根据实际情况选择型号
    在这里插入图片描述
  6. finish
    在这里插入图片描述

(二)设计输入

  1. add source
    在这里插入图片描述
  2. create design source
  3. create file
    在这里插入图片描述
  4. 命名(一般顶层模块名和工程名保持一致)、ok
    在这里插入图片描述
  5. finish
    在这里插入图片描述
  6. 端口信号不做定义,点击ok
    在这里插入图片描述
  7. 双击创建的.V文件,然后在代码编辑区域输入代码
    在这里插入图片描述

(三)分析

  1. open elaborated design
    verilog转换rtl
    在这里插入图片描述

(四)约束输入

  1. io planing
    在这里插入图片描述
  2. 选择管脚和管脚电平
    自行在自己开发板对应的原理图手册查找
    在这里插入图片描述
  3. 按下ctri+s——>起名——>ok
    在这里插入图片描述
  4. 右键关闭
    在这里插入图片描述
  5. 打开xdc文件
    这个文件可以做IO约束 或者 时序约束
    在这里插入图片描述

note:
约束这里可以自己添加约束文件
在这里插入图片描述
在这里插入图片描述

(五)综合、实现、生成比特流

  1. 点击generate bitstream
    点击generate bitstream后,vivado会自动跑综合和实现。提示框点击yes即可
    在这里插入图片描述

  2. 选择跑的时候运行的处理器核心数
    在这里插入图片描述

  3. 可以点击project summary查看进度
    图中在综合
    在这里插入图片描述

  4. 跑完了后会弹出以下框框
    选择选项3再按ok,或者直接按左边的按钮open hardware manager
    在这里插入图片描述

  5. 开发板上电连接电脑后选择program device 或者 左下角按钮
    在这里插入图片描述

  6. 点击program
    在这里插入图片描述

  7. 验证成功

二、软件仿真

(一)步骤

  1. 右键添加
    创建激励文件(testbench文件)
    在这里插入图片描述

  2. next
    在这里插入图片描述

  3. 编辑名字
    在这里插入图片描述

  4. finish
    在这里插入图片描述

  5. ok
    在这里插入图片描述

  6. 双击testbench文件,把自动生成的注释删去
    在这里插入图片描述

  7. 根据自己需求功能编写信号激励
    这里主要是时钟和复位信号
    在这里插入图片描述

  8. 点击行为仿真
    在这里插入图片描述

结果:
在这里插入图片描述
9. 点击所例化的文件,将cnt信号拖入信号栏
在这里插入图片描述
自行查看结果即可

(二)仿真界面指导

  1. 按钮指导:
    在这里插入图片描述

  2. 设置仿真时间
    在这里插入图片描述
    这里默认打开后仿真1000ns,可以在这里修改
    在这里插入图片描述

  3. 默认为显示十六进制,可以更改为十进制
    在这里插入图片描述

  4. 查看时钟周期
    间隔的两个上升沿分别add marker
    在这里插入图片描述
    单击左边蓝线,可见间隔为20ns,符合代码
    在这里插入图片描述

  5. 注意的是
    代码定义的计数器的值太大,这里只仿真1000ns,如果要跑仿真实际结果,需要很长时间,所以要么就等待,要么就修改计数器的值来模拟即可。

改完代码直接保存,并且relunch即可
在这里插入图片描述

  1. 保存波形文件
    ctrl+s 保存即可
    在这里插入图片描述
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39589455/article/details/120865557

智能推荐

关于手机无法弹出谷歌通知栏验证的问题_通知栏收不到google登录通知-程序员宅基地

文章浏览阅读9w次,点赞19次,收藏90次。在我们在一些网站登录谷歌账号的时候可能会出现以下情况需要你在手机上谷歌弹出的通知栏上点是或者输入两位数字验证身份但是,有很多人的手机无法弹出以下弹窗要解决这个问题,我们首先要知道这个通知栏是google play服务弹出来的,之所以弹不出来是因为手机安装的google play服务有问题我们很多人选择安装谷歌套件时都会选择ourplay,如果你是使用ourplay安装的google play服务,就有可能会出现这种情况要想解决这个问题,最好的方法是重新安装它....._通知栏收不到google登录通知

数学建模中所需要使用到的Matlab(从零开始介绍)_数学建模需要哪些matlab模块-程序员宅基地

文章浏览阅读2.8k次,点赞12次,收藏124次。【代码】数学建模中所需要使用到的Matlab(从零开始介绍)_数学建模需要哪些matlab模块

大数据开发学习,大数据学习路线(完整详细版)_大数据组件学习路线-程序员宅基地

文章浏览阅读2.4w次,点赞67次,收藏552次。很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:199427210,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系在巨大的数据集中进行筛选的最好工具是什么?以下是..._大数据组件学习路线

狂神说Java-Redis笔记_【狂神说java配套笔记】redis精讲-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏20次。文章目录一、Nosql概述为什么使用Nosql?什么是NosqlNosql特点阿里巴巴演进分析Nosql的四大分类二、Redis入门概述环境搭建Windows安装Linux安装测试性能基础知识三、五大数据类型Redis-keyString(字符串)List(列表)Set(集合)Hash(哈希)Zset(有序集合)四、三种特殊数据类型Geospatial(地理位置)Hyperloglog(基数统计)BitMaps(位图)五、事务事务操作过程事务错误监控六、Jedis七、SpringBoot整合八、自定义Red_【狂神说java配套笔记】redis精讲

c++ MFC int与CString互转_c++将int转换为cstring-程序员宅基地

文章浏览阅读3.7k次。int s = 123; CString str;str.Format("%d",s); 这样就可以了,但是有的会提示这个错误如果出现这个错误,就改成下面这个就OK了: str.Format(_T("%d"), s);FROM:http://liguo125.blog.51cto.com/1995200/448711_c++将int转换为cstring

决策树 Decision Tree_决策树的性能评价指标-程序员宅基地

文章浏览阅读1.6k次,点赞3次,收藏17次。本文主要简单介绍了决策树的基本概念,优缺点,应用场景,决策树建模时的注意事项,python的实现方法,案例和模型参数等。_决策树的性能评价指标

随便推点

关于STM32中HAL库的回调函数分析_stm32 hal 回调函数-程序员宅基地

文章浏览阅读9k次,点赞5次,收藏34次。前言在STM32芯片开始从固件库到HAL库迁移后,单片机底层驱动的可移植性越来越好了也越来越像上层应用程序了。因为它把底层的部分硬件相关(寄存器)给屏蔽了。回调函数回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。补充说明:回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。问题:1.为什么说回调函数可以实现异步操作?._stm32 hal 回调函数

Python基础之基础I-程序员宅基地

文章浏览阅读80次。Python的诞生背景python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。(龟叔:2005年加入谷歌至2012年,2013年加入Dropbox直到现在,依然掌握着Python发展的核心方向,被称为仁慈的独裁者)。2017年7月的TIOBE排行榜,Python已经占据第四的位置, Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。

(转载)Qt窗体关闭时,如何自动销毁窗体类对象_qt类初始化失败自动销毁-程序员宅基地

文章浏览阅读4.9k次。版权所有。转载请注明来源:http://besteam.im/blogs/article/60/。Qt内关于窗口的删除是一个复杂的事情。接下来详细地讲一讲。当我们创建一个窗口时,如果这个窗口是一个顶级窗口,准确地说是w.windowFlags().testFlag(Qt.Window) is True的窗口,Qt会自动附加一个Qt.WA_QuitOnClose属性。它的意思是,窗口被关闭了..._qt类初始化失败自动销毁

【NLP入门教程】七、词义消歧_nlp 消歧-程序员宅基地

文章浏览阅读592次。词义消歧(Word Sense Disambiguation, WSD)其目标是确定文本中词汇的正确含义。由于许多单词具有多种含义,词义消歧对于理解和分析文本具有关键作用。_nlp 消歧

idea配置maven地址-程序员宅基地

文章浏览阅读79次。

python猜数游戏在程序中预设一个_一道Python简单程序结构练习题-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏10次。原标题:一道Python简单程序结构练习题1.猜数游戏。在程序中预设一个0~9之间的整数,让用户通过键盘输入所猜数字,如果大于预设的数,显示“遗憾,太大了”;如果小于预设的数,显示“遗憾,太小了”;如此循环,直至猜到该数,显示“预测N次,你猜中了!”,其中N是用户输入数字的次数。 此题调用了random库的randint()函数来产生一个随机整数,用户在for循环里面输入数字与随机数进行比较,通..._猜数游戏。在程序中预设

推荐文章

热门文章

相关标签