FPGA烧写问题

你的fpga为什么不能正常工作——拆解第一款FPGA芯片分析原理 你的fpga为什么不能正常工作——拆解第一款FPGA芯片分析原理 现场可编程门阵列(FPGA)可以实现任意数字逻辑,从微处理器到视频生成器或加密矿机,一应俱全。FPGA由许多逻辑模块组成,每个逻辑模块通常由触发器和逻辑功能以及连接逻辑模块的路由网络组成。 FPGA的特殊之处在于它是可编程的器件:可以重新定义每个逻辑块及其之间的连接,用来构建复杂的数字电路,而无需物理上连接各个门和触发器,也不必花费设计专用集成电路的费用。     内部裸片显微照片   FPGA是由Ross Freeman... 阅读详情

比如说Altera FPGA,对于大部分芯片都可以同时采用2种编程方法,即AS+配置芯片方式以及JTAG方式,下载电缆都可以通用,比如ByteBlasterII;

用AS+配置芯片方式,就是可以将程序下载到配置芯片中,配置芯片(如EPCS系列)就是一块EPROM,它可以在每次系统上电的时候,都自动将程序烧写到FPGA中,这样一来FPGA就用不着每次上电都重新烧写了,跟使用CPLD时是一样的。这种方式下采用的下载文件时POF文件。

用JTAG方式的话,就是直接将程序下载到FPGA中,由于FPGA中是基于SRAM结构的,所以每次断电之后程序就没有了,所以必须每次上电都重新下载。用JTAG方式的好处在于便于调试,比如我们可以用QuartusII中的SignalTapII嵌入式逻辑分析仪进行FPGA I/0引脚上信号的实时观测,非常的方便。这种方式下采用的下载文件时SOF文件。

另外,如果使用了某些没有License的IP Core资源的话,那么必须在JTAG方式下,把下载线连在FPGA上才能使用,而且通常有时间限制,超过时限之后,就需要重新编译程序,产生新的SOF下载文件。

如果以上2种方式同时使用,需要2跟接线柱,一根下载线,一套配置成AS方式,一套配置成JTAG方式。前期使用JTAG方式调试,待FPGA功能成型之后,就可以用AS方式将程序固化到配置芯片中去,以后就不用每次上电都重新下载了。

2种方式具体的连接图,看看Altera官方发布的配置手册就可以了,很简单的

altera altera 对JTAG电缆、器件上电有顺序要求!另外,按照参考手册,jtag都是2.5V供电。你的jtag电缆是否支持2.5V?还有,你的程序里面双向IO口有没有可能没控制好,和外面的ASIC发生冲突造成短路?以前用过ep3c80,插拔电缆时很容易把jtag口烧掉,那次运气,只是jtag坏掉了,芯片没烧

 

 

PHY芯片的MII接口(发往FPGA)的差分信号线上没有限流电阻,因为FPGA的IO口电流范围为10uA,而PHY的输出电路为微安级mA的,这在长时间情况下会不会造成FPGA芯片损坏?

[技术笔记] FPGA的JTAG烧录不稳定或烧录失败原因分析 5、下载线断了,如果之前用过,仅接了当前设备,结果调试不了;可能之前就接触不良,因为弯折角度问题,导致没发现问题,更新新的设备,反着弯折或者弯折过大,导致接触不良几率增大。4、JTAG的定义弄错:A:封装的第1引脚错误;B:原理图封装的引脚和线序错误;C:原理图和PCB图的封装引脚错位。打板回来常会出现烧录不良,这是一个技术活,需要调试,如果烧录不过关,一切白搭。2、FPGA的JTAg引脚,焊接短路。7、TMS/TCK的引脚信号质量差。3、上拉电阻和下拉电阻,焊接错误。1、ESD防护器件焊接不良; 阅读详情

相关推荐

[技术解析] FPGA JTAG烧录故障排查实战:从焊接缺陷到信号完整性

本文系统解析了FPGA JTAG烧录失败的硬件排查实战方法。从下载器、线缆等外围检查入手,深入剖析焊接缺陷、引脚短路、电阻错焊等常见问题,并重点介绍了使用示波器进行信号完整性分析以解决高速下载不稳定等进阶难题,为硬件工程师提供了一套从现象到本质的系统化排查流程。

weixin_29168675的博客 478

FPGA再入门-2-大干一场的前夜烧了下载器!

修下载器变成做一个下载器

m0_52351495的博客 554

Altera的FPGA用烧写器烧写POF文件,烧写成功,显示100%,但是逻辑做的点灯没亮,一般会是哪的问题呀?烧写sof,灯亮。

Altera-FPGA

weixin_48435465的博客 1138

FPGA直接烧写.bit文件失败但是可以通过PROM配置的情况

最近遇到一个问题,直接往FPGA里烧写bit文件有时候能成功,有时候不能成功。假如先往PROM里写程序,不断电,再通过JTAG往FPGA里写程序,就一定烧不进去。在Generate Programming File的选项里把Enable Internal Done Pipe的选项勾选上,或许问题就可以解决了。 ...

weixin_41484738的博客 3193

Vivado 2018.3 SPI Flash烧写FPGA Verilog代码全流程与典型问题解析

本文详细解析了Vivado 2018.3环境下SPI Flash烧写FPGA Verilog代码的全流程,包括环境配置、MCS文件生成、硬件连接及实际烧写操作。重点针对烧写固化过程中的典型问题提供了解决方案,帮助开发者高效完成FPGA固件烧录,提升项目开发效率。

game4的博客 215

【实战复盘】Vitis开发中ARM程序烧写与FPGA镜像更新的典型问题解析

本文深入解析了Vitis开发中ARM程序烧写与FPGA镜像更新的典型问题,包括DDR配置导致的烧写失败、独立更新FPGA镜像的完整方案以及多UART配置的调试技巧。特别针对JTAG连接不稳定等常见问题提供了实用排查指南,帮助开发者高效解决赛灵思平台开发中的技术难题。

weixin_33725807的博客 199

FPGA FLASH烧写遇到的问题

等方式,解决了因存储限制、信号完整性或配置引擎兼容性导致的问题。若后续遇到类似异常,可优先尝试启用压缩,并结合Flash日志与硬件信号分析定位根本原因。我在烧写FLASH的时候,发现烧写完毕以后,程序不能正常运行,而在XDC中增加了以下语句就烧写成功了。在Xilinx FPGA设计中,启用比特流压缩(

LeeConstantine的博客 1576

复旦微fmql 的zynq烧写bin后大概20%概率出现逻辑不能启动导致整体没能启动,请问有什么排查解决方案

🏆本文收录于专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家!持续更新中,up!up!up!!

**My Coding Family** 1282

vivado 2018.3 烧写固化FPGA verilog代码以及出现的问题解决

vivado 2018.3 烧写固化FPGA verilog代码、vivado添加flash,位宽不同错误、flash空间不够问题

cckkppll的博客 1776

CSR-DCF视频目标跟踪源码运行笔记

论文基本信息 论文标题:Discriminative Correlation Filter with Channel and Spatial Reliability 论文作者:Alan Lukezic等 论文出处:CVPR 2017 文章链接:https://arxiv.org/abs/1611.08461 补充材料:https://www.semanticscholar.org/paper/D...

越野者的博客 3400

【Labview】对连续采集数据的一种采样方法

图1如图1,想要对这样一个连续信号进行数据点的采集,我根据网上收集到的方法,在此分享一下最终的结果。可以拓展结合文件的写入,完成对连续信号的采集和输出。 已知: 一个连续信号,如图1. 目标: 设定一定采集点个数、采集点时间间隔、和采集周期次数,得到这条连续信号的数据点,如图2. 图2 方法如下: 主要利用的是队列的方法。 在连续信号生成的时候,不断的写入队列,并且清除队列。 ...

李时珍食疗志的博客 1万+

FPGA配置和外部存储器烧写问题

首先明确,所谓配置文件,是指,将FPGA配置成某个特定电路的文件,又可以叫内核;所谓程序代码,是指,当FPGA被配置成处理器后,该处理器所执行的程序。 FPGA是基于RAM的可编程逻辑器件,器件掉电后,配置信息会完全丢失。所以需要有外部非易失性存储器来存储配置信息。一般使用专用配置器件,如EPCS4,EPCS16,作为外部存储器。当FPGA上电时,就会把外部存储器的配置信息加载到FPGA中,

kaopuguyue110的博客 6876

DVWA全级别详细通关教程

dvwa全级别详细通关教程,暴力破解,命令注入,CSRF跨站请求伪造,文件包含,文件上传​,SQL注入,XSS

m0_62063669的博客 1万+

FPGA烧写过程中的问题

在JTAG连接板卡进行烧写的时候遇到的问题。

weixin_42324065的博客 2148

SAP SD销售订单的ATP检查简介

如果可用性检查组设置为01(汇总需求),系统将更新销售订单需求到汇总表VBBS,该表中未记录销售订单号码,因此在MD04中不会显示销售订单号码,而是按天汇总显示销售需求。如果物料的可用性检查组设置为02(单个需求),系统将更新销售订单需求到表VBBE,该表中记录了销售订单号码,因此在MD04显示销售订单的号码以及需求,前面的文章中我们解释了PP模块中的ATP检查,也解释了MM模块中的ATP的检查,本文将说明一下SD模块中的ATP检查。可用性检查用的最多的就是02,有兴趣的同学可以测试一下可用性检查01。

我小时候很黑的博客 4295

vue3:实现ECharts3D地图详细示例,echarts实现3D地图map3D,vue3如何利用echarts绘制3d地图立体城市省市地区分布,可视化数据大屏3D炫酷中国地图(复制源码,开箱即用)

echarts实现中国地图记录篇之3D地图,Echarts地图之——如何让地图显示出3d感,【3d地图】vue中使用echarts geo3D,echarts实现某个市3D地图展示,vue3中使用echarts实现中国地图,3D地图图表,echarts实现3D地图——map3D,数据大屏3d地图,vue3+echarts绘制中国地图,3D地图,省、市、县,【3d地图】vue3中使用echarts geo3D,echarts实现某个市3D地图展示,ECharts3D地图(详细示例——附有具体注释),echar

✅ 精选推荐文章 3669

RK3588 板卡 FPGA 未烧写程序导致的 XDMA 设备缺失问题记录

FPGA 未烧写程序 → PCIe 链路训练失败 → lspci 看不到 Xilinx 设备 → xdma 驱动加载了但 probe 不到硬件 → 内核不创建 /dev/xdma* 节点 → 应用程序打不开设备。FPGA 芯片上电后如果没有用户逻辑,其 PCIe 端点(Endpoint)不会响应链路训练,RK3588 这边就枚举不到设备。FPGA 采集卡(CameraLink 转 SDI,G4040)设备节点,但系统中不存在,程序无法打开采集卡设备。

m0_63954846的博客 187

qt项目中添加 jsoncpp 库

qt使用jsoncpp库

deroy 1349

FPGA学习3:串口通信

串口、FPGA

weixin_44977812的博客 5733

MTK Camera HAL 与 FeaturePipe 架构解析:从硬件抽象到功能管线的工程落地路径

MTK 的 Camera 系统在 Android 平台下采用高度模块化的 HAL 与 FeaturePipe 架构组合,分别承担着底层硬件抽象与上层功能封装的职责。通过将 ISP、3A 算法、Sensor 驱动与图像处理节点解耦封装于功能链条中,联发科平台实现了灵活可控的影像能力调度机制。本文将基于真实项目实践,系统解析 MTK Camera HAL 与 FeaturePipe 架构的设计思路、核心模块与运行机制,结合 AE/AWB/AF 控制流、Buffer 管理策略、功能管线构建方法与多线程调度实现方式

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 1571

SPICE仿真软件:Ngspice_(2).安装与配置

在Netlist文件中直接定义模型。V1 1 0 5R1 2 0 1k* Analysis库文件中可以包含多种电路元件模型和参数。

kkchenjj的博客 1585

LATTICE可编程器件烧写程序操作规程:轻松掌握烧写技巧,提升项目效率

LATTICE可编程器件烧写程序操作规程:轻松掌握烧写技巧,提升项目效率 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在当今电子技术快速发展的背景下,FPGA(现场可编程门阵列)技术已成为众多工程师和技术人员关注的焦点。LATTICE可编程器件烧写程序操作规程正是针对LATTICE系列FPGA器件烧写操作的专业指南。本文将为您详细介绍这一项目的核心功能及使用场景,帮...

gitblog_06746的博客 468

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

SDK烧写FLASH过程中的问题总结

问题: 利用SDK来烧写FLASH时,出现FPGA仿真器识别出两个设备的情况,烧写失败。 解决方案: 这是一个已知问题,在2016.4版SDK和所有后续版本中都会出现这个问题,直到2017.4.1发布。SDK flash programmer 将崩溃并显示与“rdi_zynq_flash.exe”相关的错误消息。这是某些FPGA部件号的ID代码检查问题,此问题...

DSP小胖的博客 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

vivado烧写FPGA速度调节

vivado使用JTAG烧写XilinxFPGA速度调节vivado烧写FPGA速度调节 vivado烧写FPGA速度调节 在使用vivado进行FPGA工程开发时,经常会遇到vivado烧写FPGA速度不适配的情况。这个时候就需要我们去调节速度。很多同学可能不太清楚在哪里这个速度。下面这张图红色框中即为速度修改的地方。 ...

abc763274289的博客 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

关于DE2-115 FPGA开发板无法烧写程序的解决方法

友晶科技推出的DE2-115 FPGA开发板,有时候莫名奇妙,无法烧写或者固化程序。利用JTAG 向DE2-115开发板烧写.sof文件失败,并提示以下错误,如图1和图2所示 图1 图2 解决方法:只要FPGA的JTAG相关引脚没有烧坏,将DE2-115开发板的拨码开关SW19由PROG拨到RUN,就可以烧写程序了,SW19具体位置如图3和4所示。 图3 图4 ...

weixin_30904593的博客 1860
上一篇: CCD尺寸详细解
下一篇: TMS320C61416 EMIF下双FPGA加载设计
socx2007
博客等级 码龄18年 90粉丝 13原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值