如何使用FPGA打造VGA显卡

2024-03-28

介绍设计电路板的过程,包括基本步骤和技术,以及FPGA的应用和发展方向。
FPGA(可编程门阵列)是一种功能强大的电子设备,它由多个逻辑块通过互连线连接在一起。通过按需连接逻辑块,可以创建简单或复杂的电路。你可以将FPGA想象成一个大盒子里的乐高积木,可以按照你的意愿组合出各种类型的数字电路,从简单的异或门(XOR)到中央处理器(CPU),甚至整个系统(如果你有足够的资金购买最大规模的设备)。
FPGAs已被广泛应用于许多领域,其中之一就是模拟旧系统。MiSTer就是一个例子,Jeri Ellsworth的C-One是另一个例子。但事实上,FPGAs无处不在,它们快速、稳定,并且适应大多数应用场景。
本文分享一个建造电路板原型的经历,希望能帮助到大家。
1 设计电路板,在这个原型中,使用的是赛灵思(Xilinx)的Spartan 7系列FPGA。他们的XC7S6型号是最便宜的,拥有6,000个逻辑单元和100个I/O引脚供使用。FTGB196版本具有1mm的引脚间距,尺寸为15mm × 15mm,足够大,易于操作。
FPGAs需要多种不同的电压。在这个设计中,将I/O引脚的工作电压设置为3.3V(因为这对于业余爱好者来说比较标准),但还需要提供5V、1.8V和1.0V的电压。这意味着需要处理4种不同的电压!这些电路的设计可以在网上找到。基本上每个电压都需要一个芯片形式的稳压器和几个平滑电容器,一旦被设计好,你就可以在后续的设计中重复使用它们。
如何使用FPGA打造VGA显卡 (https://ic.work/) 可编辑器件 第1张
这里使用KiCAD进行设计。
FPGA本身是一个复杂的组件,它具有许多引脚,并按照不同的组织方式分为各种引脚组。FPGA可以被看作是一个整体的元件,但它也可以被分解为子元件。幸运的是,KiCAD提供了这个功能,这非常有用。这意味着你可以在多个图纸上同时显示FPGA,且只显示与该图纸相关的部分。通过这种方式可以保持图纸的整洁和清晰。
在第一块板上,没有太多其他的组件。这里设计了一块焊盘,用于连接一些存储器,这次选择了SRAM。在电路方面,SRAM所需的电路非常简单。另外还有一个USB到UART芯片,它也相对简单。然而,要找到具有正确焊盘的芯片并不容易。最终,费了一番周折才找到了一些合适的芯片。
最后,还有一个Pmod连接器。这是Digilent(一家FPGA制造商)的标准配置,用于外围设备。这里找到了一些插座的焊盘。
2 焊接BGA,FPGA通常采用球网阵列封装(Ball Grid Array,简称BGA),其底部没有引脚或腿,而是一些小小的焊球。将FPGA连接到电路板的常见方法是通过回流焊炉进行烘烤。这是目前大多数电子产品的组装方式。
通常情况下,最好是将整个制造过程交给专业制造商完成。在设计电路板时,需要考虑到机器人焊接,然后将其发送给拥有大型贴片机和大型烤箱的电路板厂,这样工作就完成了。然而,这种方法成本较高,通常仅适用于大批量订单。对于爱好者来说,BGA封装是一个挑战。
幸运的是,市面上有许多便宜或改装的焊炉可用。这里购买了一台价格便宜的焊炉——广受爱好者喜爱的T962A回流焊炉。
在进行回流焊接时,需要使用焊膏。焊膏是一种灰色的粘稠物,其中含有微小的焊球。加热后,焊膏会熔化并流动,通过毛细作用完成剩余的焊接工作。但首先,需要将焊膏涂抹在电路板上的焊盘上。常见的方法是使用金属薄膜模板,这些模板相当昂贵。
这里找到了一个位于英国的供应商,他们愿意使用激光切割聚酯薄膜作为替代品。虽然聚酯薄膜并不是最理想的选择,但对于单个元件来说效果还不错。这里决定只回流焊接FPGA,以保持简单。其他部分可以很容易地手动焊接。
使用这种方法,能学到一个诀窍——如果你使用镀铝膜,一定要在口罩上使用圆形图案,而不是激光切割小矩形并让它们彼此靠近。薄薄的镀铝薄膜无法承受刮擦,否则焊膏会四处飞溅。
焊接之前将FPGA放置在焊膏上是非常令人紧张的一步。我发现在温度图上画一个倒置的“V”形对于回流焊接FPGA效果不错。数据手册列出了推荐的曲线和温度,而这个曲线应该最符合要求。
3 手工焊接和错误,大多数元件都是2012封装(旧货币中的0805)。通常,进行手工焊接需要先在一个焊盘上涂上焊锡,在熔化焊锡的同时放置元件,让它固定,然后再焊接另一个焊盘。较大的元件通常需要经过焊锡、焊剂、焊锡带三个步骤。也可以将所有引脚涂上焊锡,然后去除多余的焊锡,据说这种方法效果非常好。有时你可能会看到一些焊点乍看起来是正确的,但实际上并没有连接。因此,反复再次检查非常重要,可以使用一把放大镜仔细检查焊点。
4 用Pmod进行图形处理,当所有焊接完成并经过测试后,可以使用一个小型JTAG电缆对FPGA进行编程。首先要做的是点亮一个LED。借助赛灵思的Vivado软件,你可以构建小型设计,将其烧录到FPGA上。
一旦LED成功闪烁,下一步就是尝试一些VGA(视频图形阵列)。尽管VGA是一项旧技术,但它非常可靠。由于它是模拟信号,所以需要更多的元件。幸运的是,数字到模拟的转换可以通过Digilent的VGA Pmod来实现。这个小巧可爱的板子只需插入电路板上的两个Pmod连接器即可。剩下的就是生成正确的数字信号。
幸运的是,威尔在这方面已经做了大量工作。你可以看看他关于FPGA图形处理的惊人系列文章。借助他的代码,你可以烧录FPGA。
5 未来研究方向,FPGA是非常神奇的设备。然而,硬件确实很复杂,虽然我们可以在软件中设计很多东西,但仍然存在许多潜在的错误。特别是在FPGA硬件调试方面有一些困难,因为一旦焊接上去,就无法再进行测试,也无法轻松取下来重试。虽然你可以使用测试探针接触它并测试信号,但FPGA处理的许多信号都非常快速且具有极高的带宽。
现在你掌握了一些基础知识,但还有许多其他方面可以研究,例如内存、外设、音频和更好的图像,这需要时间来探索和实现。不过,当最终获得成功时,所有的努力都是值得的! 

 

文章推荐

相关推荐