FPGA
zkf0100007
侠之大者,为国为民
展开
-
FPGA实现双向电平转换
网上搜了一圈,好像没看到的类似的中文资料,不过MicroSemi有个文档AC349上给出了完整的解决方案,还有参考代码。欲知详情的朋友,请参考。原创 2023-11-20 21:44:15 · 152 阅读 · 0 评论 -
EagleSDR USB HAT FT600
由于FT600是16bit的接口,如果用FT601的32bit接口,性能应该还会有大幅提升。测试代码很简单,参考了网上大佬的例程。原创 2023-09-09 16:07:10 · 632 阅读 · 0 评论 -
AC701 HDMI DEMO
我按照Xilinx Video Series and Blog Posts ,很快用ZEDBOARD上的HDMI输出了图像,但是把软件代码移植到AC701上,HDMI输出还是没显示,把初始化代码完全按照AN-1270《基于ADV7511/ADV7511W/ADV7513的视频发生器》,也不行。调试中还发现一个奇怪的问题,要把输出给ADV7511的信号,通过ILA抓波形才行,如果不加ILA,HDMI居然没输出,不知道是不是被优化掉了,算了,反正加个ILA有HDMI输出就行,不想折腾了。原创 2023-06-16 22:34:34 · 177 阅读 · 0 评论 -
PYNQ-SDR
两年前尝试做了Elektor SDR,详见https://blog.csdn.net/zkf0100007/article/details/107030610?spm=1001.2014.3001.5501效果确实不错,但是解调都是在PC端实现,一直想用FPGA来做解调,先从最简单的AM做起。因为Elektor SDR本身就是按Arduino接口做的,可以直接插到PYNQ-Z2上,用一根音频线将输出接到PYNQ-Z2的LINE IN即可。原创 2023-04-02 23:07:03 · 260 阅读 · 1 评论 -
ZYNQ控制SI5351例程
硬件平台为PYNQ-Z2+ELEKTOR SDR,刚开始读写不成功,用示波器看IIC波形,没有拉低,因为PYNQ-Z2上已经有上拉电阻,把ELEKTOR SDR上的上拉电阻去掉,可正常读写,但是用示波器测频率,偏了9M,检查代码发现,DK7IH的代码中定义了INTERFREQUENCY 9000000,将其改成0,在我之前发布的《ZYNQ IIC EEPROM读写例程》基础上,借用其IIC读写函数,其余代码参照DK7IH的AVR例子,即可实现SI5351控制。原创 2023-03-04 22:22:01 · 1080 阅读 · 0 评论 -
开源ZYNQ AD9361软件无线电平台
原理图PCB开源:https://github.com/zkf0100007/EagleSDR-Pi。(3) 单发单收,工作频率400MHz-2.7GHz。(4) 发射带PA,最大输出功率约20dbm。(8) 板载UART/JTAG二合一接口。(9) 标准信用卡尺寸85mm*56mm。觉得有用的朋友麻烦在github给个星。(7) 1路千兆以太网RJ-45接口。(5) 接收带LNA,低噪声系统。(6) 支持USB供电。原创 2023-02-28 22:32:42 · 1664 阅读 · 3 评论 -
Red-pitaya SDR
原文链接:http://pavel-demin.github.io/red-pitaya-notes/sdr-receiver/Red-pitaya 火龙果买来一年多了,基本处于吃灰状态,趁国庆假期拿出来玩玩。原创 2022-10-01 22:58:37 · 956 阅读 · 1 评论 -
Chips-2.0(四)VGA例程
测试svga_hello_world例程,下载bit文件后,串口打印乱码,VGA无显示。由于PYNQ_Z2的系统时钟是RTL8211输出的125MHz,用ChipScope抓波形发现,DCM的LOCK信号经常失锁,这就无解了。没办法,外部飞一个100MHz时钟,完美解决,串口打印和VGA均正常。相应地,要对bsp.vhd和bsp.xdc做相应修改。把原来AUDIO_EN的Y7让给CLK100MHz,AUDIO_EN移到F20。修改后的bsp.vhd如下:---------------------原创 2022-04-25 23:35:37 · 330 阅读 · 0 评论 -
Chips-2.0(三)PYNQ开发板验证
上回把demo工程综合实现流程跑了一遍,但是没有nexy4板子,没法上板验证。怎么办呢?总不能买一个nexy4吧,那就用手里的PYNQ-Z2试试吧。1.到github克隆Chips-Demo2.复制Chips-Demo/demo/bsp/nexy_4,并重命名为pynq_z23. pynq_z2/bsp.py,修改FPGA型号为device = “XC7Z020-CLG400-1”4. 打开pynq_z2/bsp.vhd,将其中关于ethernet和SEVEN_SEGMENT相关的内容注释掉5原创 2022-04-19 16:48:14 · 458 阅读 · 0 评论 -
Chips-2.0(二)DEMO工程综合实现
1.安装numpysudo apt-get updatesudo apt-get install python-numpy2.在Github上克隆例程git clone https://github.com/dawsonjon/FPGA-radio.gitcd FPGA-radio/运行如下代码时,显示没有需要VIVADO./run_demo.py radio nexys_4 compile build download run #full build process我虚拟机下安装了V原创 2022-04-12 22:57:05 · 841 阅读 · 0 评论 -
Chips-2.0(一) 安装
Chips是什么:Chips is a high level, FPGA design tool inspired by Python.好吧,现在HDL已经被各种嫌弃了,我也来尝试一下Python搞FPGA.按照Github上的安装说明:git clone --recursive https://github.com/dawsonjon/Chips-2.0.gitcd Chips-2.0sudo python setup install执行第三步的时候报错’python: can’t ope原创 2022-04-11 22:35:11 · 902 阅读 · 0 评论 -
Memory read error at 0xF8007080. AHB AP transaction error, DAP status f0000021
XILINX ZYNQ SDK调试报错如下:Memory read error at 0xF8007080. AHB AP transaction error, DAP status f0000021初步分析应该是之前烧写QSPI不成功,导致上电加载后进入异常状态。解决办法:把BOOTMODE改成JTAG模式或者在VIVADO中把QSPI擦除(要选择Entire Configuration Memory Device)...原创 2022-01-21 20:06:52 · 2087 阅读 · 0 评论 -
PYNQ OV5640 HDMI显示
最好准备尝试一下HLS,最好的例子当然是各种图像处理算法了,准备把吃灰许久的OV5640用起来。自己在JLC做了个转接小板,如下:VIVADO工程在原子哥的领航开发板例程上修改,为了方便调试,把vdma_api.c中的DEBUG_MODE打开了,结果运行结果显示VDMA传输失败:后来发现,把DEBUG_MODE关掉即可。完整工程见我的资源,引用了正点原子的工程,表示感谢!欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-09-19 14:31:20 · 1009 阅读 · 0 评论 -
Red Pitaya WiFI连接
上次已经用有线的方式成功连接并访问Red Pitaya。准备试试无线连接,根据官方推荐,买了一个RTL8188CUS的无线网卡将网卡插入到Red Pitaya,并将网线连接到无线路由器,在浏览器中打开Red Pitaya打开system–>network manager,在listi中选取想要连接的无线网络,输入SSID和密码即可。拔掉网线,重新上电,在浏览器中输入Red Pitaya的IP即可通过WIFI访问。好像在WIFI访问模式下,必须通过IP访问,之前有线模式下的http://原创 2021-09-07 11:03:12 · 634 阅读 · 0 评论 -
FPGA实现FM0编码
话不多说,直奔主题逻辑框图如下:代码如下:`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date: 2020/11/14 14:00:08// Design Name: // Module Name: fm0// Project Name: // Ta原创 2020-11-17 14:34:17 · 983 阅读 · 0 评论 -
FPGA AM调幅信号产生
FPGA产生AM调幅信号,通过DAC输出,测试环境为PYNQ+正点原子ATK_HS_DA_DA卡,如下:测试波形如下:完整工程见我的资源原创 2020-06-10 11:55:36 · 1101 阅读 · 3 评论 -
ST7735 FPGA驱动
买了一块ST7735的1.3寸彩色OLED,将卖家提供的STM32程序很快移植到了ZYNQ上,点屏成功。用IO模拟确实很慢,抓波形看了一下,SCK大概是1MHz的样子,单色刷屏时,延迟较大。参照希科电子的IP,用逻辑加速,折腾了好久,屏就是不亮,抓波形看跟IO模拟的也差不多,百思不得其解。都准备放弃了,发现IO模拟的SCK平时是高电平,而希科的SCK平时是低电平,试着改了一下:always ...原创 2020-04-05 13:00:48 · 1565 阅读 · 3 评论 -
PYNQ ADAU1761播放正弦和余弦波
参照www.harald-rosenfeldt.de 大牛的例程,移植到了PYNQ上,左右声道分别播放同频率的正弦和余弦,波形如下:完整工程见我的资源原创 2020-03-21 14:53:28 · 486 阅读 · 0 评论 -
ADAU1761配置成耳机输出
从网上下载了一个ZedBoard的ADAU1761例程,在PYNQ上修改了,可以运行,但是耳机不出声。检查了一下,原例程是从LINE OUT输出,但是PYNQ的LINE OUT没有接到音频座上,看了一下ADAU1761的数据手册,耳机输出控制是下面两个寄存器控制的:将这两个寄存器的HPMODE设为1,RHPM设为1,再配置相应的音量即可,最简单的就是两个寄存器都写成0xFF即可,此时声音输出...原创 2020-02-25 00:09:42 · 1152 阅读 · 0 评论 -
FPGA播放WAV的简单例子
代码参考了《Programming.FPGAs.Getting.Started.with.Verilog》,原代码是用的寄存器存储WAV数据,我改成了用BRAM存储。原理框图如下:原理比较简单,2M时钟驱动计数器计数,计数值与BRAM中读出的WAV值比较,产生一个256阶的PWM信号,通过RC滤波后,即可驱动耳机发声。在PYNQ上进行验证,完整工程下载见我的资源。...原创 2020-02-13 23:11:11 · 1088 阅读 · 6 评论 -
ZYNQ SPI 主从master/slave
在PYNQ-Z2上用PS端SPI做主,PL端SPI做从,控制PL端的4个LED。SPI的SLAVE端代码直接使用添加链接描述网站的例子。实际运行波形如下:完整的VIVADO 2017.4工程见我的资源。...原创 2020-02-09 11:36:06 · 2041 阅读 · 0 评论 -
Cygwin综合实现RISC-V出错
RISC-V的例子都要求在LINUX下安装VIVADO,比较麻烦,想在WINDOWS下用Cygwin试试 1.打开cygwin,运行如下命令export PATH=$PATH:/cygdrive/c/Xilinx/Vivado/2015.2/bin2.从 github下克隆e200_opensource-master 3.从digilent下载arty-a7-35的board fil...原创 2018-09-13 18:11:28 · 826 阅读 · 0 评论 -
VIVADO 2017.4烧写QSPI FLASH
开发ZYNQ时,在VIVADO 2017.4在烧写QSPI FLASH时必须指定FSBL文件,貌似是17.3后新增的特性,指定默认生成的FSBL文件,提示烧写失败。百思不得其解,只好上XILINX官网搜索,XILINX官网中AR70548和AR70148提供了解决方法。对于VIVADO 17.3和17.4,需要给电脑添加环境变量,18.1之后无需添加 XIL_CSE_ZYNQ_UBOOT_...原创 2019-02-28 21:46:29 · 7031 阅读 · 0 评论 -
PYNQ FIR滤波器硬件加速(二)
在生成OVERLAY之后,就可以上板实测了。在地址栏输入\pynq\xilinx\pynq\overlays然后在该目录下新建文件夹,并命名为fir_accel,把生成的 fir_accel.tcl和fir_accel.bit复制到该文件夹from pynq import Overlayimport pynq.lib.dma# Load the overlayoverlay = O...原创 2019-06-03 22:40:26 · 1014 阅读 · 1 评论 -
PYNQ FIR滤波器硬件加速(一)
软件部分见Acceleration of a FIR filter on the PYNQ-Z1 https://gist.github.com/shohei/e618a5befc55ba0c1ba875a284221baf硬件加速OVERLAY搭建流程如下:新建VIVADO工程,选择PYNQ_Z2新建Block Design,添加ZYNQ,并点击Run Block Automati...原创 2019-06-02 13:41:20 · 1239 阅读 · 3 评论 -
I2S Receiver的HDL实现
I2S用于传输立体声音频数据流,包括SCK、WS和SD三个信号,SCK为时钟,WS用于区分左声道和右声道,SD为数据,可以是16、20、24或32bits。I2S的实现框图如下:I2S Receiver详细框图如下:代码如下:`timescale 1ns/1nsmodule i2s_receive2 # ( parameter width = 32 ) ( ...翻译 2018-10-09 23:07:15 · 780 阅读 · 0 评论 -
undefined reference to math function in VIVADO SDK
在程序中用到的 cos和sin函数,并且已经#include <math.h>库,但编译还是报错:undefined reference to 'cos'undefined reference to 'sin'在XILINX查到了解决方法:在工程上右键–>Properties,弹出如下窗口,并添加math库问题解决。...原创 2018-10-06 08:59:03 · 980 阅读 · 0 评论 -
VIVADO "create and package new IP" 添加新HDL文件路径设置问题
在VIVADO中点击Tools→Create and Package IP,生成一个叫myip的IP,如果我在里面例化了一个名为dummy 的模块// Add user logic heredummy dummy (.clk(s00_axi_aclk));// User logic ends然后,新建dummy.v文件,路径如果选择默认的话,VIVADO后续会提示找不到该文件,而且再次...翻译 2018-10-04 23:09:40 · 2527 阅读 · 0 评论 -
用FPGA实现HDMI
1.HDMI连接器标准HDMI接口即TYPE A,包括19个PIN,主要是4对差分信号线TMDS clock+ and clock-TMDS data0+ and data0-TMDS data1+ and data1-TMDS data2+ and data2-2.视频信号本例产生640x480 RGB 24bpp @ 60Hz的视频信号,307200个像素每帧,每个像素包括24...翻译 2018-10-04 10:26:23 · 16721 阅读 · 7 评论 -
RISC-V的ARTY工程实现
1.在Ubuntu下安装Vivado 2017.2 2.从 github下克隆e200_opensource-master 3.从digilent下载arty-a7-35的board file并放到\Xilinx\Vivado\2017.2\data\boards\board_files目录下 4.切换目录并运行cd /home/zkf/e200_opensource-master/fp...原创 2018-09-13 18:01:33 · 1498 阅读 · 3 评论 -
RISC-V编译环境搭建
JTAG调试器设置将JTAG调试器连接PC,并断开主机连接将其连接到UBUNTU虚拟机,运行lsusb应该有以下这个设备:Bus 002 Device 010: ID 0403:6010 Future Technology Devices International, Ltd FT2232C Dual USB-UART/FIFO IC设置udev rules,使JTAG调试器可以被p...转载 2018-09-23 17:10:19 · 4565 阅读 · 1 评论 -
RISC-V编译ISA自测试用例
安装库sudo apt-get install autoconf automake autotools-dev curl device-tree-compiler libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev...原创 2018-09-13 17:49:40 · 1912 阅读 · 0 评论 -
ZEDBOARD连接fmcomms3
1.首先用Win32DiskImager将2015_R2-2016_07_26写入到SD卡 2.将ZEDBOARD设置成SD卡启动,注意JP6要短接(针对工程样片) 3.启动成功后,运行ifconfig查看IP地址 4.运行sudo ifconfig eth0 192.168.6.10 netmask 255.255.255.0设置网卡eth0的IP地址和子网掩码 5.运行sudo ro...原创 2018-08-30 22:01:20 · 1073 阅读 · 0 评论 -
国产荔枝糖FPGA开发板实现FM发射
之前在ZEDBOARD上实现了FM发射,移植到荔枝糖FPGA开发板上,运行异常,抓波形看,波形紊乱,由于最高时钟为450M,估计是荔枝糖FPGA开发板跑不了这么高,那就降频吧,降到18M果然可以发射了 top代码如下:module top( output [2 : 0] rgb_led_o, input clk24mhz, input reset, outpu...原创 2018-09-09 17:44:26 · 5737 阅读 · 0 评论 -
PYNQ-Z2 HDMI DEMO
从Digilentinc 上的Zybo-hdmi-out移植过来的,显示彩条效果如下:完整工程见我的资源:hdmi-out.xpr.zip原创 2018-10-21 19:58:48 · 2878 阅读 · 4 评论 -
FPGA 以太网数据发送(无需PHY和变压器)
1.只用网线的PIN3和PIN62.获取电脑的网卡信息ipconfig /all3.代码如下module TENBASET_TxD(clk20, Ethernet_TDp, Ethernet_TDm);// a 20MHz clock (this code won't work with a different frequency)input clk20;// the tw...翻译 2018-10-24 21:53:58 · 4866 阅读 · 4 评论 -
FPGA挂载NVME SSD(一)
FPGA挂载SATA SSD需要SATA IP,IP报价动辄十几W,开源的IP也有,但都是基于V6或者V5等老器件的。现在好了,NVME SSD大行其道,而且不需要IP,可以说为广大爱好者带来的福音。国外的FPGA大牛Jeff Johnson写了一个FPGA挂载NVME SSD的教程http://www.fpgadeveloper.com/2016/04/zynq-pci-express-root...原创 2018-11-16 19:23:51 · 13335 阅读 · 23 评论 -
ZCU104之PYNQ初试
到PYNQ官网下载zcu104_v2.4.img用Win32DiskImager烧写到TF卡将ZCU104的BOOTMODE控制开关SW6设置成SD启动连接串口到PC,上电,在串口中运行ifconfig查看其默认IP为192.168.137.21在浏览器中输入http://192.168.137.21:9090即可进入Jupyter然而,诡异的事情来了,为了在Jupyter测试HDM...原创 2019-05-26 20:53:10 · 3285 阅读 · 24 评论 -
PYNQ 开发板连接互联网
本文不仅于PYNQ,适用于所有带网口的各类开发板。要想让PYNQ连接互联网,一种是用PC做桥接,一种是用路由器,本文采用PC桥接方式。桥接需要电脑至少有两个网卡,本人用的笔记本,一个是无线网卡,连接互联网,另一个是RJ-45通过网线连接PYNQ开发板。打开网络设置,右击无线网卡—>属性—>共享,勾选如下选项,在下接框中选择与PYNQ连接的网卡,本人用的是“本地连接 2”:由于...原创 2019-05-03 11:10:18 · 6475 阅读 · 8 评论 -
Sublime使用技巧
安装Sublime安装package control插件, 按照网上的自动安装老是报错。只能用手动安装,下载安装包,点击Sublime----》BrowsePackages,弹出一个目录,在这个目录向上一级,有一个InstalledPackages的文件夹,把下载的安装包放在这里面,覆盖,重启Sublime,应该就可以了3.在Sublime中 Crtl+Shift+P 打开 Pac...原创 2019-05-02 00:28:15 · 335 阅读 · 0 评论