跳转到主要内容

博客

PCIx系列之“PCIe总线硬件设计”

本文主要介绍一些常见的PCIe设计方案,针对PCIe接口的PCB设计。

FPGA挂载NVME SSD(一)

FPGA挂载SATA SSD需要SATA IP,IP报价动辄十几W,开源的IP也有,但都是基于V6或者V5等老器件的。现在好了,NVME SSD大行其道,而且不需要IP,可以说为广大爱好者带来的福音

ZYNQ+Vivado2015.2系列(十三)私有定时器中断

私有定时器属于PS部分,定时器可以帮我们计数、计时,有效的控制模块的时序。这一次实验我们认识定时器并使用定时器产生中断。

CPU的私有中断(PPI),5个:全局定时器, 私有看门狗定时器, 私有定时器以及来自 PL 的 FIQ/IRQ。
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/1_4.png&quot; alt=""></center>

System Generator从入门到放弃(二)——Digital Filter

System Generator是Xilinx公司进行数字信号处理开发的一种设计工具,它通过将Xilinx开发的一些模块嵌入到Simulink的库中,可以在Simulink中进行定点仿真,可以设置定点信号的类型,这样就可以比较定点仿真与浮点仿真的区别。并且可以生成HDL文件,或者网表,可以在ISE中进行调用

Zedboard学习(三):PL下流水灯实验

Zynq系列FPGA分为PS部分和PL部分。

PL: 可编程逻辑 (Progarmmable Logic), 就是FPGA部分。

PS: 处理系统 (Processing System) , 就是与FPGA无关的ARM的SOC的部分,实质是直接操作arm9内核的处理器。

这次先是最简单地在PL部分编写一个流水灯实验的代码。

使用的开发环境是vivado 2016.4。

ZYNQ+Vivado2015.2系列(十二)按键中断(PL中断请求)

PS和PL之间的交互,怎么都逃不过中断,稍微大型的数字系统,PS和PL之间配合使用就需要中断作为桥梁。本文通过按键发起中断请求尝试学习PL请求中断的处理机制。

Zedboard学习(二):zedboard的Linux下交叉编译环境搭建

环境准备
首先肯定是要下载xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin文件,这是官方提供的linux下交叉编译链安装文件,下载地址为:https://pan.baidu.com/s/1eSP85nO

安装交叉编译环境工作:
1、由于安装文件只能在bash下运行,所以要将dash改为bash,输入以下指令:
sudo dpkg-reconfigure -plow dash

System Generator从入门到放弃(一)-安装与使用

System Generator是Xilinx公司进行数字信号处理开发的一种设计工具,它通过将Xilinx开发的一些模块嵌入到Simulink的库中,可以在Simulink中进行定点仿真,可以设置定点信号的类型,这样就可以比较定点仿真与浮点仿真的区别。并且可以生成HDL文件,或者网表,可以在ISE中进行调用

ZYNQ+Vivado2015.2系列(十一)BRAM的使用——PS与PL交互数据,及其与DRAM(Distributed RAM)的区别

Block RAM是PL部分的存储器阵列,为了与DRAM(分布式RAM)区分开,所以叫块RAM。ZYNQ的每一个BRAM 36KB,7020的BRAM有140个(4.9M),7030有265个(9.3M),7045有545个(19.2M)。每一个BRAM都有两个共享数据的独立端口,当然是可以配置的,可用于片内数据缓存、FIFO缓冲

ZYNQ QNX开发——资源管理器对close()的处理

在写资源管理器的时候,一般会用到处理close()来进行一些收尾工作,比如释放内存等等,查看QNX代码resmgr_io_funcs_t结构体对close()的处理有两个相关函数

Python程序语法元素分析

程序的格式框架
下面是一段温度转换的代码示例:
#TempConvert.py
TempStr = input("请输入带有符号的温度值:")
if TempStr[-1] in['F','f']:
C = (eval(TempStr[0:-1]) - 32)/1.8
print("转换后的温度是{:.2f}F".format(F))
elif TempStr[-1] in['C','c']:
F = 1.8*eval(TempStr[0:-1]) + 32

Zedboard学习(一):移植Ubuntu桌面操作系统

首先,需要的肯定是Ubuntu操作系统。可以在自己的电脑上安装物理机,也可以是虚拟机下运行的。我的是在Vmware下运行的Ubuntu14.04 32位操作系统。由于zedboard上的Linux操作系统跑的是32位的,为了省去麻烦,我没有安装64位的

ZYNQ+Vivado2015.2系列(十)MIO/EMIO再识,MIO的引脚“复用”,EMIO当作PS的接口连接PL

前面我们介绍过EMIO,但是不详细。MIO是PS的IO接口,这个M代表的是Multiuse,也就是多用途,在下图中我们可以看到54个MIO连接这么多东西,必须得复用,所以当我们开发的时候需要的功能配置上,不需要的去掉,防止IO口被占用

Vivado使用指南(三):如何设置Vivado压缩BIT文件

 在调试Vivado 过程中,由于生成的BIT文件过大,而我使用的FLASH又是32MBIT的,出现了FLASH过小,无法烧录的情况。网上搜索到的方法都是说“generate progamming file下会有一个属性,进去了在-g compress后面打勾”,但是我使用的是VIVADO2017.2,该版本根本找不到这个选项。于是只能自己慢慢摸索,终于,找到了两种方法

ZYNQ QNX开发——PL串口设备驱动遇到的问题

在ZedBoard上开发基于QNX操作系统PL部分UART设备驱动的过程中遇到了一点问题,问题原因不明但总结下来给大家提供参考,也以便以后对QNX的进一步了解后回顾这些问题。

PYNQ系列学习(五)——Jupyter Notebook介绍

在前面几期的学习中,我们对于PYNQ的环境配置做了较为详细的介绍,并对PYNQ与ZYNQ的异同点做了较为深入的探究。我们知道,PYNQ = Python + ZYNQ,即将ZYNQ部分功能的Python化,直接调用Python库和FPGA硬件库进行功能的开发,典型的例子便是PYNQ_z2开发板

Vivado使用指南(二):如何使用Vivado在线逻辑分析仪

一、在想要抓取的信号之前添加(* mark_debug = "true" *)、保存、编译。如:
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201812/13997-41409-…; alt=""></center>

基于ZYNQ(Miz702)的EMIO与MIO联合操作(寄存器版)

在ZYNQ中,EMIO标号紧随MIO(0:53)之后,我定义了8个EMIO,采用标号54:61。在PS MIO Configuration中启用GPIO MIO 勾选EMIO GPIO(Width)选项,并设置宽度为8,即设置EMIO输出到8个PL的GPIO。具体程序如下:

Vivado使用指南(一):如何在Vivado中添加自己喜爱的文本编辑器

一、如何在Vivado(2017.2)中添加自己喜爱的文本编辑器。

1、打开Vivado软件,选择Tools-->Settings。
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201812/13987-41358-…; alt=""></center>

PYNQ上手笔记(3)——PS端+PL端点灯

上一节中分别独立实验了Zynq的PS端和PL端,并初步实验了PS端先硬件再软件的开发流程和IP核设计的设计方法。第一节中提及到:Zynq是以PS端的ARM处理器系统为核心的,PS端和PL端是通过AXI总线,并且Xilinx已经提供了各种AXI通信的IP核,接下来的实验中将会更加明确的体验到利用IP核设计的设计方法。