记录Lattice FPGA iCE40 HX8K开发中遇到的那些坑

这篇具有很好参考价值的文章主要介绍了记录Lattice FPGA iCE40 HX8K开发中遇到的那些坑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第一次开发Lattic FPGA,记录一下遇到的问题供大家参考

使用的芯片时iCE40HX8K,采用的是外接flash方式。

问题1:烧写程序时出错

ERROR - Function:CHECK_ID
Data Expected: h16 Actual: hFF
fpga开发是个大坑,fpga开发
网上有人使用其他款FPGA的,说是要先擦除,再编程。经试验,我这不是这个问题。经查资料,每一款flash都有其对应的厂商和ID,应当是编程协议中需要进行识别的,我这款ID的确是0x16,而报错是说收到的是0xFF,那么很有理由怀疑就是信号线一直处于高电平,而得到0xFF。因此对线路进行检查,后发现SPI的数据线错了,错误图如下:
fpga开发是个大坑,fpga开发
fpga开发是个大坑,fpga开发

我的SDI应当为SPI协议中的MOSI,SDO应当为SPI协议中的MISO,而这里的flash作为SPI协议中的从端(slave端),那么SDI应当连接到DI(pin5)引脚,而SDO应当连接DO(pin2)引脚,也就是说FPGA的SDO应当连接flash的DO,FPGA的SDI应当连接flash的DI。于是我用飞线的方式将两根线交换了,再测试,结果对flash编程成功了。
然而,始终觉得不对劲,自己设计电路时,是参考了lattice官方demo板的,按说不应该会犯这种低级错误。果然,问题并没有这么简单。

问题2:flash编程成功,但FPGA并未实现上电自动配置成功。

带着前面觉得自身不会犯那种低级错误的疑惑,我再次翻查了lattice官方demo和手册,原来这里的引脚还是有问题。
iCE40 LP/HX系列的官方demo我主要参考了:iCEstick评估套件以及iCE40HX-8K Breakout Board(分线板)。这里有一个坑我始料未及。
用过Xilinx和altera FPGA的小伙伴都知道,我们可以直接把程序固化到flash里面,然后FPGA上电自动从里面加载配置,或者我们也可以不固化,而直接下载程序到FPGA里(只不过这样会掉电丢失),同样的,我认为lattice也应当这样。
然而,我们先看iCEstick评估套件的设计图:
fpga开发是个大坑,fpga开发
我一开始就是参照这个设计的,他的FPGA的SI就是连接flash的SDO,但是他的程序下载并不是用的JTAG,而是板上自带的USB芯片
fpga开发是个大坑,fpga开发
后来我查询到,lattice的下载器HW-USBN-2B手册里讲到,demo板上自带USB芯片的情况下,是不能用这个下载器的,二者是冲突的。那么这里就有一个疑问,他的这种连接,编程flash时,相当于USB芯片是SPI主端,flash是从端,可是FPGA上电从flash自配置时,究竟谁是主谁是从???
再看iCE40HX-8K Breakout Board(分线板)
fpga开发是个大坑,fpga开发
fpga开发是个大坑,fpga开发
他同样有USB芯片,但他这里设置了一个跳线,可以选择设置是给flash编程还是设置给FPGA编程,也就是说,给flash编程和给FPGA上电自配置的接线是不一样的,即SPI的两根数据线是相反的,那么前面的疑问就明了了,前面的评估套件,也许他就是不能FPGA以主端的方式自动从flash加载配置。
于是我又实验了一下,我通过电脑直接给FPGA的SRAM编程,成功点亮了小灯,验证了我的猜想,也就是说,我更改了SPI接线后,可以给flash编程,也可以给FPGA的SRAM编程,但是FPGA却不能自动上电从flash进行配置,原因就是他的SPI接线是相反的,需要跳线。

总结

iCE40 这个芯片的电路设计需要小心,给flash编程和给FPGA SRAM编程以及FPGA与flash之间自动配置的SPI接线是有所不同的,里面的两根数据线是相反的。不过我也想不通,altera和Xilinx在这个上面都是可以既给flash编程,也可以给FPGA编程,还可以FPGA自动配置,接线不会存在引脚不同需要跳线的情况啊。难道lattice在设计上也是犯了此等低级错误???亦或是我自己尚未研究明白???文章来源地址https://www.toymoban.com/news/detail-692535.html

到了这里,关于记录Lattice FPGA iCE40 HX8K开发中遇到的那些坑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 矿卡40HX在linux下AI绘画简单流程

    本文适合:       linux刚入门,会一点基本的命令行操作;会用vi/nano。       觉得windows版本的AI绘图不稳定,性能想再提点高,可以把主机扔到角落里,随时可以通过web端访问的。 预装: 华硕CMP 40HX硬体上占用二个半槽位,卡长接近24cm,如果补完电容后,是pcie 16x通道的,

    2024年02月15日
    浏览(30)
  • AI绘画 矿卡CMP 40HX 五秒出图(2023.8.6更新)

    华硕的CMP 40HX是基于Nvidia Turing架构的矿卡,相比P106/P104/P102系列基于Pascal架构的矿卡,CMP 40HX启用了Tensor核心,在AI运算方面的效率有了显示提升。 基于stable diffusion的webui开源界面,目前最流行的automatic1111算排名靠前的一个项目。大家用得应该比较多了。这个项目的更新速度

    2024年02月14日
    浏览(30)
  • Lattice CrossLink-Nx LIFCL-40应用连载8:MIPI DSI接口驱动LCD显示器

    作者:Hello,Panda 一、案例需求 使用LIFCL-40-7MG121I FPGA的MIPI DSI硬核接口驱动7寸LCD显示器: (1)显示器:7寸,1024*600横屏,60Hz; (2)MIPI物理层:4-Lane,600Mbps/lane(最大可支持3840*2160分辨率30Hz,1920*1200分辨率120Hz,最大支持2.5Gbps/lane速率); (3)DSI:支持突发模式,24-bpp

    2024年02月09日
    浏览(42)
  • 快进来,带你了解FPGA基础知识---lattice莱迪斯深力科MachXO2 FPGA系列简介

    FPGA基础知识---lattice莱迪斯深力科MachXO2 LCMXO2-4000HC-4TG144I FPGA简介 FPGA基础知识:FPGA是英文Field-Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,

    2024年02月03日
    浏览(41)
  • “FPGA开发中Vivado生成bit文件遇到的错误解决方案“

    “FPGA开发中Vivado生成bit文件遇到的错误解决方案” FPGA开发是现在工业界中越来越广泛使用的技术,但是在开发过程中难免会出现一些问题。其中,Vivado生成bit文件报错是一个比较常见的问题。下面,我将详细介绍这个问题以及如何彻底解决。 一、问题描述 当我们进行FPGA项

    2024年02月04日
    浏览(60)
  • [FPGA 学习记录] 快速开发的法宝——IP核

    快速开发的法宝——IP核 在本小节当中,我们来学习一下 IP 核的相关知识。 IP 核在 FPGA 开发当中应用十分广泛,它被称为快速开发的法宝。在本小节当中,我们将和各位朋友一起来学习了解 IP 核的相关知识、理解掌握 IP 核的调用方法。 我们分为以下几个部分进行 IP 核的学

    2024年02月05日
    浏览(46)
  • Lattice FPGA解码MIPI视频,IMX219摄像头4Line 1080P采集USB3.0输出,提供工程源码硬件原理图PCB和技术支持

    FPGA图像采集领域目前协议最复杂、技术难度最高的应该就是MIPI协议了,MIPI解码难度之高,令无数英雄竞折腰,以至于Xilinx官方不得不推出专用的IP核供开发者使用,不然太高端的操作直接吓退一大批FPGA开发者,就没人玩儿了。 本设计基于Lattice的LCMXO3LF-6900C-5BG256C开发板,采

    2024年02月02日
    浏览(52)
  • 安路EG4S20 FPGA开发板学习记录1

    参加集创赛报名了arm的杯赛,用的是安路科技的EG4S20开发板,基于cortex-M0内核。初赛时什么也不会,研究生的方向是做二维材料,但是想着以后找工作往ic方向靠拢,只能硬着头皮自学。没想到初赛随便交了东西上去竟然进了复赛,本来准备放弃的,现在重新开始一点点学习

    2024年04月16日
    浏览(44)
  • Rust UI开发(四):iced中如何添加菜单栏(串口调试助手)

    注:此文适合于对rust有一些了解的朋友 iced是一个跨平台的GUI库,用于为rust语言程序构建UI界面。 这是一个系列博文,本文是第四篇,前三篇链接: 1、Rust UI开发(一):使用iced构建UI时,如何在界面显示中文字符 2、Rust UI开发(二):iced中如何为窗口添加icon图标 3、Rust

    2024年02月03日
    浏览(84)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包