自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (6)
  • 收藏
  • 关注

原创 ZYNQ学习之旅--PS_SDCARD(PS读写SD卡)

目录标题简介FAT文件系统BD设计软件设计简介SD 卡的英文全称是 Secure Digital Card,即安全数字卡(又叫安全数码卡),是在 MMC (MultimediaCard,多媒体卡)的基础上发展而来,主要增加了两个特色:更高的安全性和更快的读写速度。SD 卡和 MMC卡的长度和宽度都是 32mm x 24mm,不同的是,SD 卡的厚度为 2.1mm,而 MMC 卡的厚度为 1.4mm,SD卡比 MMC 卡略厚,以容纳更大容量的存贮单元,同时 SD 卡比 MMC 卡触点引脚要多,且在侧面多了

2020-07-09 10:26:30 1833

原创 ZYNQ学习之旅--PS_AXI_VDMA(利用VDMA实现将PS端的数据显示在PL端的HDMI上)

目录标题简介帧缓存同步锁相(Genlock )Genlock MasterGenlock SlaveDynamic Genlock MasterDynamic Genlock SlaveVDMA 概述BD设计软件设计简介AXI VDMA(AXI Video Direct Memory Access,以下简称 VDMA),是 Xilinx 提供的软核 IP。其功能和 AXI DMA(以下简称 DMA)有些类似,都可以为存储器或者 AXI4-Stream 类目标外设之间提供高带宽直接存储器存取。和 D

2020-07-08 09:18:00 10050 1

原创 ZYNQ学习之旅--PS_AXI_BRAM(PS与PL通过BRAM进行数据交互)

目录标题BD设计软件设计BRAM(Block RAM)是 PL 部分的存储器阵列,PS 和 PL 通过对 BRAM 进行读写操作,来实现数据的交互。在 PL 中,通过输出时钟、地址、读写控制等信号来对 BRAM 进行读写操作(关于 BRAM 的操作时序,请参考“RAM IP 核实验”);而在 PS 中,处理器并不需要直接驱动 BRAM 的端口,而是通过 AXI BRAM 控制器来对 BRAM 进行读写操作。AXI BRAM 控制器是集成在 Vivado 设计软件中的软核,可以配置成 AXI4-lite

2020-07-07 10:02:00 2922 2

原创 ZYNQ学习之旅--PS_AXI_DMA(DMA环回)

目录标题简介BD设计软件设计简介DMA 是所有现代计算机的重要特色,它允许不同速度的硬件设备进行沟通,而不需要依于中央处理器的大量中断负载。否则,中央处理器需要从来源把每一片段的数据复制到寄存器,然后把它们再次写回到新的地方。在这个时间里,中央处理器就无法执行其它的任务。DMA 是用硬件实现存储器与存储器之间或存储器与 I/O 设备之间直接进行高速数据传输。使用 DMA时,CPU 向 DMA 控制器发出一个存储传输请求,这样当 DMA 控制器在传输的时候,CPU 执行其它操作,传输操作完成时 DMA

2020-07-06 08:29:27 2904

原创 ZYNQ学习之旅--PS_AXI_DDR(PL端利用AXI总线实现读写DDR)

目录标题简介BD设计软件设计简介ZYNQ 将高性能 ARM Cotex-A 系列处理器与高性能 FPGA 在单芯片内紧密结合,为设计带来了如减小体积和功耗、降低设计风险,增加设计灵活性等诸多优点。在将不同工艺特征的处理器与 FPGA 融合在一个芯片上之后,片内处理器与 FPGA 之间的互联通路就成了 ZYNQ 芯片设计的重中之重。如果 Cotex-A9 与FPGA 之间的数据交互成为瓶颈,那么处理器与 FPGA 结合的性能优势就不能发挥出来。我们在前面的实验中介绍了一些 ZYNQ PS 与 PL 交

2020-07-04 10:05:15 9500 3

原创 ZYNQ学习之旅--PS_QSPI读写flash

目录标题简介BD设计软件设计简介ZYNQ 中的 QSPI Flash 控制器可以工作在三种模式下:I/O 模式、线性地址模式,以及传统 SPI 模式。在 I/O 模式中,软件负责实现 Flash 器件的通信协议。软件需要将 Flash 命令和数据写到控制器中的 TXD寄存器中,然后将接收到的数据从 RXD 寄存器中读出。而线性地址模式则使用一组器件操作来减小软件从 Flash 中读取数据的开销。线性模式使用硬件来实现来自 AXI 接口的命令到 Flash 指令的转换。对用户来说,在线性模式下读 QS

2020-07-03 08:23:47 5049

原创 ZYNQ学习之旅--PS_AMP(双核简单实验)

这里写目录标题简介BD设计软件设计简介多核处理器从多核的结构上是否一致,分为两种基本架构:同构多核架构和异构多核架构。同构多核处理器是指系统中的处理器在结构上是相同的;而异构处理器是指系统中的处理器在结构上是不同的,这些处理器可以是通用处理器,也可以是解决某些特定应用的专用硬核。同构多核架构相比于异构多核架构,在硬件和软件设计上较为简单,通用性较高。但在某些特定应用场合下,如异构多核架构专用的硬件加速硬核,异构多核架构的性能会更高。Xilinx 的 ZYNQ SOC 融合了这两种架构,ZYNQ SO

2020-07-02 13:01:03 1712

原创 ZYNQ学习之旅--PS_ETH(tcp_server)

目录标题简介TCP/IP简介LWIP简介BD设计关键部分软件代码简介随着 5G 的兴起,万物互联成为将来发展的一个方向,更多的设备将具备联网的功能,将数据上传到云端。得益于 TCP/IP 协议的优越性,该协议已成为当前应用的主流网络协议。在嵌入式网络设备中由于受到硬件资源的限制,实现完整的 TCP/IP 协议十分困难,这就需要一种特殊的实现方式,LWIP 作为一种轻量级的 TCP/IP 协议实现方式充分满足了这一要求。TCP/IP简介TCP/IP(Transmission Control Proto

2020-07-01 08:19:44 1438

原创 ZYNQ学习之旅--PS_XADC

目录标题简介BD设计软件设计简介在ZYNQ的PL端有一个数模混合模块——XADC,它是一个硬核。XADC包含两个模数转换器(ADC),一个模拟多路复用器,片上温度和片上电压传感器等。我们可以利用这个模块监测芯片温度和供电电压,也可以用来测量外部的模拟电压信号。ZYNQ SoC 的 XADC 模块包括两个 12 位的模数转换器,转换速率可以达到 1MSPS(每秒一百万次采样)。它带有片上温度和电压传感器,可以测量芯片工作时的温度和供电电压。用户可以设置报警阈值,用来检测温度过高或者供电电压异常等事件

2020-06-30 19:49:57 3060 5

原创 ZYNQ学习之旅--PS_UART(串口中断环回)

目录标题简介BD设计软件设计简介UART 控制器是一个全双工异步收发控制器,ZYNQ 内部包含两个 UART 控制器,UART0 和 UART1。每一个 UART 控制器支持可编程的波特率发生器、64 字节的接收 FIFO 和发送 FIFO、产生中断、RXD 和TXD 信号的环回模式设置以及可配置的数据位长度、停止位和校验方式等。UART 控制器系统框图如图所示:由上图可知,UART 控制器和 IO 端口由参考时钟(UART REF_CLK)驱动,同时控制器也需要连接APB 总线时钟(CPU_

2020-06-30 16:47:33 3953

原创 ZYNQ学习之旅--自定义AXI总线的IP核

这里写目录标题简介BD设计软件设计简介在 zynq 系统的设计中,我们将许多实现特定功能的硬件设计模块封装起来,称之为 IP 核。这种方式极大的提高了设计效率,降低了设计门槛,让设计人员不需要在每次需要某个功能时多次重复相同的工作,或者需要某个功能时去自行研究实现方法,只需要添加实现该功能的 IP 核即可。在添加 IP 核的列表即可看出 xilinx 官方提供了非常丰富的 IP 资源供我们使用。但在实际设计中总会遇到一些特殊的需求,这种时候就需要我们自行设计并封装 IP 核,将它运用到各个系统中。在本次

2020-06-30 08:37:13 1585

原创 ZYNQ学习之旅--PS_TIMER

目录标题简介BD设计软件设计简介在 ZYNQ 嵌入式系统中,定时器的资源是非常丰富的,每个 Cortex-A9 处理器都有各自独立的 32 位私有定时器和 32 位看门狗定时器,这两个 CPU 同时共享一个 64 位的全局定时器(GT)。除此之外,PS 中还有一个 24 位的系统看门狗定时器(SWDT)和两个 TTC(Triple Timer Counters)。系统看门狗定时器可以在系统发生灾难性的故障时(如 PS 中的 PLL 工作异常)发出信号,使得系统程序重新启动,保证了系统安全可靠的运行。T

2020-06-29 13:19:40 958

原创 ZYNQ学习之旅--PS_AXIGPIO

这里写目录标题简介BD硬件设计软件设计简介在本实验中,我们将在硬件设计时添加一个 AXI GPIO 的 IP 核。IP 的定义为“用于 ASIC 或 FPGA 中的预先设计好的电路功能模块”。IP 主要分为软 IP、固 IP 和硬 IP。软 IP 是用 Verilog/VHDL 等硬件描述语言描述的功能块,但是并不涉及用什么具体电路元件实现这些功能。固 IP 是完成了综合的功能块。硬 IP 提供设计的最终阶段产品——掩膜。AXI GPIO 就是一个软 IP,它通过使用 PL 端的逻辑资源来实现我们需要

2020-06-29 10:39:00 656

原创 ZYNQ学习之旅--PS_EMIO

目录简介BD设计软件设计简介ZYNQ GPIO 接口信号被分成四组,分别是从 BANK0 到 BANK3。其中 BANK0 和 BANK1 中共计 54个信号通过 MIO 连接到 ZYNQ 器件的引脚上,这些引脚属于 PS 端;而 BANK2 和 BANK3 中共计 64 个信号则通过 EMIO 连接到了 ZYNQ 器件的 PL 端。如下图所示:在大多数情况下,PS 端经由 EMIO 引出的接口会直接连接到 PL 端的器件引脚上,通过 IO 管脚约束来指定所连接 PL 引脚的位置。通过这种方式,

2020-06-28 14:21:50 849 2

原创 ZYNQ学习之旅--PS_MIO_INT

这里写目录标题简介BD设计软件设计简介中断是一种当满足要求的突发事件发生时通知处理器进行处理的信号。中断可以由硬件处理单元和外部设备产生,也可以由软件本身产生。对硬件来说,中断信号是一个由某个处理单元产生的异步信号,用来引起处理器的注意。对软件来说,中断还是一种异步事件,用来通知处理器需要改变代码的执行,不过,轮询所产生的中断的过程是同步的。当处理器收到中断,它会停下当前正在做的任务,然后跳转到需要处理的地方去。这和轮询的方式是相反的,轮询是由软件同步获取设备的状态。在中断方式中,不需要由处理器不断地

2020-06-27 14:43:04 500

原创 ZYNQ学习之旅--PS_MIO

这里写目录标题简介试验任务BD设计软件设计简介Zynq-7000 系列芯片有 54 个 MIO(Multiplexed I/O),个别芯片除外如 7z007s 只有 32 个。图 是GPIO 的框图,从中我们可以看到 GPIO 分为 4 个 Bank,注意这里不包括 AXI_GPIO。除 Bank1 之外的 Bank 都具有 32bit,Bank1 只具有 22bit 是因为总共只有 54 个 MIO,其中 32bit 的Bank0 控制了 MIO[0~31],剩下的 MIO[31~53]就由 22b

2020-06-26 21:42:33 2116

原创 PYNQ初体验--基于PYNQ简单的数字识别

目录标题准备工作移植到PYNQ上准备工作因为我们要做的就是将训练好的网络移植到PYNQ上,所以我们需要先在PC上把数字网络识别的网络训练好。因为我也是初次接触这个东西,这里的网络很简单,就用了一层的全连接层,计算量很小,先试试水(不排除有空的话会去用FPGA端加速做复杂的网络,这里我只用到了PS端的资源,并未涉及到PL端的资源)。废话不多说,先用如下的代码训练一个简单的数字识别网络。环境配置如下:Windows 10 64bitPython 3.6import tensorflow as

2020-06-26 14:34:45 3108 13

原创 PYNQ初体验--AXI_GPIO实验

目录PYNQ简介PYNQ是什么jupyter notebookPYNQ的学习资料如何使用PYNQ?PYNQ上跑的一个AXI_GPIO小例程PYNQ简介PYNQ是什么PYNQ是一个新的开源框架,使嵌入式编程人员能够在无需设计可编程逻辑 电路的情况下即可充分发挥 Xilinx Zynq All Programmable SoC(APSoC)的功能。 与常规方式不同的是,通过 PYNQ,用户可以使用 Python 进行 APSoC编程,并且 代码可直接在支持 PYNQ 的开发板上进行开发和测试。通过 PY

2020-06-25 19:45:38 2586

原创 VIVADO下如何将RTL设计文件封装为一个网表

在Vivado TCL命令窗口中可以通过调用write_edif命令将用户自定义模块封装成.edf网表文件(类似ISE里的.ngc文件),但按照官方给出的参考用法生成的网表文件对自定义模块有种种限制,即待封装的模块不能含有Xilinx IP(少部分IP可以包含,如RAM IP、FIFO IP等),如DSP IP、MIG IP等,否则在编译时将报错,提示有未定义的黑盒。那么如何将包含XIlinx ...

2020-06-11 11:22:20 2833

原创 leetcode算法题库-两数相加

两数相加给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序 的方式存储的,并且它们的每个节点只能存储 一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。实例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -&gt...

2020-05-02 18:11:54 304

原创 FPGA上实现SPI协议通信

FPGA上实现SPI协议通信1、SPI协议概括SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,越来越多的芯片集成了这种通信协议,比如AT91RM9200。SPI总线是一种4线总线,因其硬件功能很强,...

2020-01-06 14:33:09 8425 1

原创 FPGA上实现IIC读写EEPROM

FPGA上实现IIC读写EEPROM1、IIC协议简介IIC(Inter-Integrated Circuit)其实是IICBus简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。I²C的正确读法为“I平方C”(“I-squared-C”),而“I二C”(“I-two-C”)则是另一种错误...

2020-01-05 19:31:40 2730

原创 利用D触发器实现任意倍数分频(并使用Verilog验证)

利用D触发器实现任意信号分频我们都知道,利用D触发器可以实现分频,并且D触发器实现2的幂次方很容易,只要将它们简单的连起来就可以,那么如何利用D触发器实现任意倍数的分频呢?这里就需要对数电的知识有所了解了,这里就不阐述了,数电书翻一下就有的。这里我举个利用D触发器实现占空比为50%的7分频,看会了这个应该可以自己实现任意的倍数分频了,好了,废话不多说,进入正题。利用D触发器实现7分频原理...

2019-12-24 16:28:47 10503 4

原创 FPGA实现任意奇数分频

FPGA实现任意奇数分频奇数分频原理分析Verilog代码实现仿真验证奇数分频原理分析我们都知道用FPGA做偶数分频很简单,只需要用计数器计数到分频系数N的一半再减去1,不断去翻转分频的信号即可得到分频的信号,那么奇数奇数分频其实也是一样的,但是如果要得到占空比为50%的信号,那可能就需要处理一下才可以,下图为占空比为50%的3分频信号产生原理。Verilog代码实现module div...

2019-12-24 10:14:49 1139 2

转载 matlab保存高清图的方法

figure文件保存成高清图片的技巧01鉴于广大砖友在用MATLAB保存figure图片时,会出现图片分辨率不够高,粘贴使用不清晰,导致文章整体视觉效果欠佳的情况,我觉得有义务有责任分享一下我的经验。方法步骤如下:汉化版步骤:figure文件窗口依次点击,文件—导出设置—渲染—分辨率—600—确定(分辨率也可以大于或小于600,基本设置600出的一张图30MB左右,接近4K,满足基本需求),设...

2019-10-11 09:21:58 16521 2

原创 XPath初学(爬取中国天气网,并做出可视化界面)

爬取中国天气网,并做出可视化界面发现码字真的也是一门技术活,刚开始还可以码码字,现在根本码不动了,就是随便记录下自己的学习过程吧,不定期更新,毕竟还是要毕业的啊,没很多时间一直学这个。import requestsfrom lxml import etreefrom pyecharts.charts import Barfrom pyecharts import options as o...

2019-09-04 15:59:13 735

原创 初学爬虫之试---爬取51笑话网站(源代码)

爬取点笑话图片没事的时候躲在被子里看看吧做实验的等待的时候,有点无聊,就想起来原来自己闲着没事,自己写了个爬虫,爬取了一些搞笑图片,没事看看娱乐下。相信大家平时都有无聊的时候,那么问题来了,无聊的时候该干些什么呢,看点搞笑图片吧,让我们开心的笑起来,面对疾风吧!(ha sa ki,tuo li a 尅 tuo 我去,又尼玛发神经了,大家请原谅我,我可能会不定期的抽风下 ),言归正传,其实简单的...

2019-08-17 16:11:26 593 3

原创 C语言链表学习--学生信息管理系统

最近学习了下C语言的链表,为了更加熟悉链表,就随意写了个学生信息管理系统(写的很垃圾,大佬勿喷)本人最近刚好有点时间,就去看了看c语言的链表,看到网上各种c语言的学生信息管理代码,确实都是现成的东西,我也没必要去自己再写,但是本萌新是带着学习的态度好吧(内心真实想法:我就是闲的蛋疼好吧 ),决定自己尝试去写一段这个代码,毕竟只有自己会写才是真理,你看的代码再多,你看的时候觉得你会了,其实不然,说...

2019-08-16 15:55:17 1180

原创 某互联网公司软件开发笔试题(按照二进制中1的个数进行分类)

某互联网公司软件开发笔试题(按照二进制中1的个数进行分类)题目描述:小A刚学了二进制,他十分激动,为了确定他掌握了二进制,你给他出了这样的一道题:给定N个飞赴整数,将这个N个数字按照二进制下1的个数分类,二进制下1的个数相同的数字属于一类,求最后一共有多少个类的数字?输入描述:输入的第一行是一个正整数z(0<z<=10),表示样例个数。对于每一个样例,第一行是一个正整数N(0&l...

2019-08-12 10:03:41 351

PYNQ上实现BNN网络识别数字

在PYNQ上实现了一个简单的BNN网络,并对比了用FPGA加速和不用FPGA加速的时间,发现使用FPGA确实可以加速深度学习网络的识别。

2020-06-27

TCL培训教程_Jerkwin.pdf

本文是TCL教材的第三稿, 前两稿分别是《TCL的使用》和 《TCL培训教程》. 这一稿加入了不少内容, 是北研TCL兴趣小组共同 努力的结果. 本文详细介绍了TCL的各个方面, 特别对利用C\C++语言 扩展TCL命令作了详细论述. 本文附有大量实例.

2020-06-26

PIFA天线设计仿真.rar

本项目重点研究PIFA天线的小型化,利用已有的小型化技术,本项目提出一种运用表面开槽法来减小PIFA天线的体积,所选的工作频段为DCS1800,通过对PIFA天线的辐射片开槽处理,在保证天线的谐振频点不变时,可以缩小天线的体积。借助电磁仿真软件HFSS的设计和仿真,在已经设计好的PIFA天线的辐射金属片表面开槽,为了能够保持原来的工作谐振频点不变,可以发现PIFA天线的的尺寸明显减小。

2020-01-06

spi_verilog_master_slave_latest.tar.gz

该项目在Verilog HDL中提供SPI Mode-3主从模块。数据宽度为8位。它是为Xilinx Spartan 6合成的,时钟频率最高可达225MHz。最大SPI时钟(sck)频率为112MHz,由主时钟得出。来自主时钟的SCK缩放比例可以是2、4、8和16,也可以进一步减小。 SPI主模块以FSM(有限状态机)编码。从模块的设计就像移位寄存器一样。接口信号是SCLK(或SCK),MOSI,MISO和SS。SCK是由主设备生成的SPI时钟。MOSI是主机的数据输出,是从机设备的数据输入。MISO是从机数据输出,是从机数据输入。SS是从机选择低电平有效信号,它使总线中的从机设备处于激活状态。

2020-01-06

IIC_e2prom.zip

FPGA作为IIC器件的主机,EEPROM芯片作为从机,里面代码已经通过modelsim仿真过,并在板级验证过,通过signal tap看过了信号,验证完全正确。

2020-01-05

BCH编码与解码的simulink仿真

BCH的编码与解码,利用matlab的simulink实现,通过对加入与不加入BCH的编码模块产生的结果进行对比。

2018-12-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除