
Xilinx-FPGA
文章平均质量分 86
小琛在路上
有合作和解决问题请私信我细谈,谢谢!
展开
-
Xilinx-ZYNQ7000系列-学习笔记(28):ZYNQ多中断冲突问题
当PS端使用2个以上中断时,如果机械性地将两部分中断代码移植到一起,会出现只有最后初始化的中断能使用,前面的都不可用。原创 2021-12-16 19:50:47 · 5944 阅读 · 13 评论 -
Xilinx-ZYNQ7000系列-学习笔记(27):AXI时序分析
Xilinx-ZYNQ7000系列-学习笔记(27):AXI时序分析一、AXI基本知识此部分之前的博客写过,大家请参考Xilinx-ZYNQ7000系列-学习笔记(10):AXI总线下面将AXI_LITE各信号所表示的意义拿来:官方给出的AXI握手协议如下:AXI4 所采用的是一种 READY,==VALID ==握手通信机制,简单来说主从双方进行数据通信前,有一个握手的过程。 传输源 产生 VLAID 信号来指明何时数据或控制信息有效。而 目地源产生 READY 信号来指明已经准备好接受数据原创 2021-08-05 11:30:11 · 2934 阅读 · 3 评论 -
Xilinx-ZYNQ7000系列-学习笔记(26):CAN总线
Xilinx-ZYNQ7000系列-学习笔记(26):CAN总线前言:一直忙着找工作和毕业的事,许久未操刀了,最近需要用到新的知识,宗旨还是在督促自己学习的同时,总结笔记,帮助大家。老本行不能丢!一、CAN总线概述2.1 独立看门狗二、CAN总线使用方法2.1 CAN总线结构下图为CAN控制器的框图:配置寄存器(Configuration Registers):CAN 控制器配置寄存器定义了配置寄存器。该模块允许用于通过APB 接口对寄存器进行读写访问。收发消息(Transmit and原创 2021-08-02 20:13:47 · 10215 阅读 · 8 评论 -
Xilinx-AX7103-学习笔记(25):基于UDP的以太网通信
Xilinx-AX7103-学习笔记(25):基于UDP的以太网通信实验将实现AX7103开发板和PC之间进行以太网数据通信, 通信协议采用Ethernet UDP通信协议。开发板上FPGA通过以太网PHY芯片KSZ9031RNX和网口连接, 通过RGMII接口跟FPGA进行数据通信。一、基本知识介绍从硬件角度来看以太网是由CPU,MAC,PHY三部分组成的,如下图:上图中DMA集成在CPU,CPU,MAC,PHY并不是集成在同一个芯片内,由于PHY包含大量模拟器件,而MAC是典型的数字电路,考虑原创 2021-02-26 16:42:54 · 4422 阅读 · 1 评论 -
Xilinx-Spartan6-学习笔记(24):通过SPI总线读写FLASH
Xilinx-Spartan6-学习笔记(24):通过SPI总线读写FLASH利用SPI总线实现对FLASH进行读写,写入255个数据再读出255个数据。一、SPI总线时序介绍原创 2021-02-09 15:47:08 · 3368 阅读 · 5 评论 -
Xilinx-Verilog-学习笔记(22):直观理解FPGA的设计流程(设计、综合、仿真、烧录)
Xilinx-Verilog-学习笔记(22):直观理解FPGA的设计流程(设计、综合、仿真、烧录)为了从更加直观的角度来说明FPGA的设计流程,这里以不同时钟频率的时钟控制LED闪烁为例进行整体介绍。一、规划思路规划思路这一步也是最重要的一步,在进行FPGA设计之前,首先要结合实际的功能对流程进行规划。譬如我们要通过不同频率的时钟对LED灯进行不同频率闪烁的控制。那么要想得到不同频率的时钟,最好的方法就是利用PLL时钟倍频和分频技术对系统时钟进行倍频和分频,进而得到想要的时钟频率。然后再通过所得不同原创 2021-01-16 16:46:14 · 2099 阅读 · 3 评论 -
Xilinx-PYNQ_Z2系列-学习笔记(11):自定义overlay
Xilinx-PYNQ_Z2系列-学习笔记(11):自定义overlay该博文参考:https://blog.csdn.net/bramblewalls/article/details/80045922一、前言首先大致介绍一下PYNQ:PYNQ开源框架可以是嵌入式编程用户在无需设计可编程逻辑电路的情况下充分发挥APSOC功能。PYNQ提供了一个Python接口,可以通过运行在PS中的pyth...原创 2021-01-13 09:36:06 · 4251 阅读 · 1 评论 -
Xilinx-Spartan6-学习笔记(21):UART时序分析
Xilinx-Spartan6-学习笔记(21):UART时序分析由于黑金教程只给出了代码和最终结果,没有中间分析的过程。经过犹豫后,还是决定花功夫进行一下时序分析,为了后续复习方便,也同时监督自己认真对待每一行代码。话不多说,黑金教程里讲的咱们全部都跳过,直接上干货。1、clkdiv.v文件这个文件主要目的是通过50Mhz的系统时钟,分出一个较低频率的时钟用于UART串口驱动。取16倍波特率的目的是对每比特数据有16个时钟进行采样,从而确保不会漏采或者错采。always @(posedge sc原创 2020-11-19 15:18:26 · 1755 阅读 · 3 评论 -
Xilinx-Verilog-学习笔记(20):汉明码编解码与CRC冗余校验
Xilinx-Verilog-学习笔记(20):汉明码编解码与CRC冗余校验一、汉明码编解码1、原理解析原创 2020-11-13 10:59:19 · 6037 阅读 · 0 评论 -
Xilinx-Verilog-学习笔记(19):正弦波信号发生器与DDS
Xilinx-Verilog-学习笔记(19):正弦波信号发生器与DDS一、正弦波信号发生器1、浮点数的定点化这里以2.918为例,实现浮点数向定点数的转换:(1)在进行浮点转定点之前,要先确定整数部分位宽和小数部分位宽。3位整数位宽,12位的小数位宽,最高位的符号位1位。(2)15位宽的数能够表示的数值范围为-32768到32767。整数部分3位宽的数最大能表示到8,因此最大精度为8/32767=0.000244140625。(3)2.918进行定点化的过程为2.918/(8/32768)=1原创 2020-11-12 11:33:54 · 10190 阅读 · 11 评论 -
Xilinx-Verilog-学习笔记(18):FIFO
Xilinx-Verilog-学习笔记(18):FIFO一、调用ISE中的FIFO1、调用ISE中的IP(1)选择芯片类型,封装,速度以及仿真器和语言等。(2)创建一个新的source文件,并将该文件放到design目录下。(3)创建IP核的配置,这里要与创建工程的一致。(4)选择创建一个FIFO(5)选择FIFO的类型(6)选择FIFO的时钟和内存类型(7)选择FIFO的位宽和深度(8)选择FIFO的一些标志信号(9)选择复位方式这是配置完成后最终生成的报告。原创 2020-11-10 15:26:16 · 16187 阅读 · 0 评论 -
Xilinx-Verilog-学习笔记(17):异步并口通信
Xilinx-Verilog-学习笔记(17):异步并口通信一、SPI总线1、什么是SPI总线?SPI是串行外设接口(Serial Peripheral Interface),是一种高速的、全双工、同步的通信总线。由于没有应答机制确认是否接收到数据,因此SPI总线与IIC总线相比,在数据可靠性上有一定的缺陷。2、时序特点...原创 2020-11-08 16:41:40 · 2075 阅读 · 1 评论 -
Xilinx-Verilog-学习笔记(16):SPI总线
Xilinx-Verilog-学习笔记(16):SPI总线一、SPI总线SDI是主机(FPGA一般做主机)向从机发送数据的线,SDO为从机向主机发送的数据的线。一般SDI发送的是一些控制指令,SDO发送的是一些反馈信息。 CS为片选信号,选择信号是否有效。SPI总线有三线和四线型,三线型为SDIO,是一种双向的。...原创 2020-11-05 17:12:49 · 3178 阅读 · 1 评论 -
Xilinx-Verilog-学习笔记(15):Verilog基础语法演示(2)
Xilinx-Verilog-学习笔记(15):Verilog基础语法演示(2)一、移位寄存器移位寄存器原理:按照时钟节拍,一位一位移进来,起初寄存器中的值为0,lvds发送过来的数据为lvds d1。本实验采取从左侧移入的方法。第一个时钟周期:{lvds_d1 0000_000}第二个时钟周期:{lvds_d2 lvds_d1 000_000}······第八个时钟周期:{lvds_d8 lvds_d7 ···· lvds_d1}其中,花括号为位拼接符,新移进来的1位与之前移位寄存器中的前原创 2020-11-02 17:04:53 · 1425 阅读 · 0 评论 -
Xilinx-Verilog-学习笔记(14):Verilog基础语法演示(1)
Xilinx-Verilog-学习笔记(14):Verilog基础语法演示一、design文件和testbench文件1、触发器1.1 design文件//此处为模块与接口定义module ex_trigger( input wire sclk, input wire rst_n, input wire [7:0] d, output wire [7:0] q);//声明一个寄存器型用于always中reg [7:0] q_r;//always块always @(pos原创 2020-09-13 21:56:02 · 1524 阅读 · 0 评论 -
Xilinx-ZYNQ7000系列-学习笔记(6):ZYNQ无DDR启动
Xilinx-ZYNQ7000系列-学习笔记(6):ZYNQ无DDR使用OCM加载程序之前由于某项目需求,需要去掉DDR,但是去掉DDR以后会导致程序无法正常启动,因为默认的启动方式会经过DDR这一步。在查阅了大量的资料和仔细研究了FSBL的主函数启动顺序后,现总结如下,希望能帮助到大家。1、导入SDK并创建FSBL文件(这一步就不细说了,具体步骤我在上一篇博客中有写,大家可以参考一下)。...原创 2020-05-15 16:23:00 · 2810 阅读 · 3 评论 -
Xilinx-PYNQ_Z2系列-学习笔记(13):在PYNQ-Z2上安装Keras/Tensorflow 库的方法
Xilinx-PYNQ_Z2系列-学习笔记(13):在PYNQ-Z2上安装Keras/Tensorflow 库的方法PYNQ-Z2开发板是PYNQ开源框架的硬件平台。在ARM A9 CPU上 运行的软件包括:载有Jupyter Notebooks 设计环境的网络服务器Ipython 内核和程序包LinuxFPGA的基本硬件库和API查阅了网上一些安装方法,发现都有部分不完善的地方,...原创 2019-12-02 08:43:00 · 11819 阅读 · 43 评论 -
Xilinx-PYNQ_Z2系列-学习笔记(12):使用pynq进行PS和PL的通信方式
Xilinx-PYNQ_Z2系列-学习笔记(12):使用pynq进行PS和PL的通信方式该博文参考pynq官方手册:https://pynq.readthedocs.io/en/v2.3/overlay_design_methodology/pspl_interface.htmlPS/PL接口Zynq PS 与PL之间一共有9个AXI 接口,在PL一侧有4个AXI Master HP(Hig...原创 2019-11-26 10:12:08 · 11130 阅读 · 3 评论 -
Xilinx-ZYNQ7000系列-学习笔记(10):AXI总线
Xilinx-ZYNQ7000系列-学习笔记(10):AXI总线1、AXI总线概述在ZYNQ中有支持三种AXI总线,拥有三种AXI接口,当然用的都是AXI协议。其中三种AXI总线分别为:AXI4:(For high-performance memory-mapped requirements.)主要面向高性能地址映射通信的需求,是面向地址映射的接口,允许最大256轮的数据突发传输;AXI4...原创 2019-06-26 16:54:45 · 5707 阅读 · 1 评论 -
Xilinx-ZYNQ7000系列-学习笔记(9):定时器中断实验
Xilinx-ZYNQ7000系列-学习笔记(9):定时器中断实验1、定时器首先,zynq 7000 soc芯片具有2个ARM核。每个Cortex-a9处理器都有自己的专用32位定时器和32位看门狗定时器.两个处理器共享一个全局64位定时。这些定时器的时钟频率固定为CPU时钟频率(Cpu_6x2x)的1/2,例如AX7021的ARM工作频率为767MHZ,则私有定时器的频率为383.5MHZ。...原创 2019-06-20 21:34:52 · 5572 阅读 · 3 评论 -
Xilinx-HLS-学习笔记(8):高层次综合HLS简介
Xilinx-HLS-学习笔记(8):高层次综合HLS简介在RTL里,设计师不需要考虑怎么构造一个寄存器或怎样安置这些寄存器,而只需要考虑这些寄存器在设计中起到怎样的作用。EDA工具可以先把RTL转化成数电模型,再由模型转换成一个设备上的具体电路实施方案。所谓"方案"其实就是编译出的文件,这些文件可以用于规定某个自定义设备,也可以用于编程一些现有的设备,比如FPGA。HLS则是在这基础上更高层...原创 2019-06-10 19:06:51 · 5176 阅读 · 0 评论 -
Xilinx-ZYNQ7000系列-学习笔记(7):解决ZYNQ IP核自动布线后会更改原有配置的问题
Xilinx-ZYNQ7000系列-学习笔记(7):解决ZYNQ IP核自动布线后会更改原有配置的问题之前在玩zedboard板卡时遇到这样一个问题,当我将ZYNQ IP核内部都配置完成后,假设配置如下但当我点击Run Block Automation后,会出现这样的情况:从图中可以看出,我之前配置的内部信息全都改变了。这种情况非常可怕,因为你不知道它内部还有什么别的地方有所改变,可...原创 2019-03-15 15:52:59 · 2888 阅读 · 0 评论 -
Xilinx-ZYNQ7000系列-学习笔记(5):设置EMIO并固化到QSPI
Xilinx-ZYNQ7000系列-学习笔记(5):设置EMIO并固化到QSPI一、EMIO的设置预先知识MIO:多功能IO接口,属于Zynq的PS部分,在芯片外部有54个引脚。这些引脚可以用在GPIO、SPI、UART、TIMER、Ethernet、USB等功能上,每个引脚都同时具有多种功能,故叫多功能。EMIO:扩展MIO,依然属于Zynq的PS部分,只是连接到了PL上,再从PL的引脚...原创 2019-03-13 20:19:56 · 3471 阅读 · 0 评论 -
Xilinx-ZYNQ7000系列-学习笔记(4):在vivado中自定义IP核
Xilinx-ZYNQ7000系列-学习笔记(4):在vivado中自定义IP核一、PWM首先我们先编写一个pwm模块,用于封装成IP核。`timescale 1ns/1psmodule ax_pwm#( parameter N = 32 //pwm bit width )( input clk, input rst, input[N - 1:0]period, inpu...原创 2019-03-13 15:19:02 · 6949 阅读 · 0 评论 -
Xilinx-ZYNQ7000系列-学习笔记(3):系统复位与启动
Xilinx-ZYNQ7000系列-学习笔记(4):系统复位与启动一、复位ZYNQ-7000 SoC系统中的复位可以由硬件、看门狗定时器、JTAG控制器或软件产生,可用于驱动系统中每个模块的复位信号。其中,硬件复位由上电复位信号PS_POR_B和系统复位信号PS_SRST_B驱动。在PS中,有3个看门狗定时器可用来产生复位信号;JTAG控制器产生的复位信号可产生系统级复位信号,或者只用于复位P...原创 2018-11-30 16:41:19 · 7900 阅读 · 0 评论 -
Xilinx-ZYNQ7000系列-学习笔记(2):私有看门狗(AWDT)的使用
Xilinx-ZYNQ7000系列-学习笔记(3):PS端看门狗(WDT)的使用一、WDT简介原创 2018-11-28 19:37:31 · 12756 阅读 · 23 评论 -
Xilinx-ZYNQ7000系列-学习笔记(1):用XADC测外部温度值
Xilinx-ZYNQ7000系列-学习笔记(2):用XADC测外部温度值一、XADC简介Zynq器件XADC模块包括2个12比特1 MIPS的模数转换器和相关的片上传感器,内置温度传感器和功耗传感器,可实时监测片内结温,各路电压数据并可输出告警信号。XADC模拟输入包括专用模拟输入VP/VN和16组复用模拟信号输入VAUX(15:0);XADC转换结果可以通过动态重配接口(DRP)或者JT...原创 2018-11-19 16:03:56 · 20391 阅读 · 15 评论