关于学习fpgas的初学者的建议请

时间:2018-02-28 10:07:37

标签: fpga

这篇文章可能很愚蠢,你们都会嘲笑我,但无论如何,我必须提出这个问题。

正如你所看到的,我对数字设计并不熟悉,这是你能说的最少。

我已经了解了一些关于FPGA编程的知识,我的意思是基本概念的基本概念,比如可编程逻辑器件FPGA的基本介绍和设计流程,这对我来说很有帮助(顺便提一下)你还需要拿起这个,你可以在这里查看:http://www.apogeeweb.net/article/67.html)。我也试图完成一些与此相关的项目。

最近我在μproc开发中获得了一些适度的知识,至少足以理解我正在做的事情并设置一些小项目。

我的问题是我还不太了解如何处理FPGA。

我看了一下这里描述的项目或者Hamster wiki,以及大多数处理面向VGA的任务(游戏,显示......)。我觉得唯一感兴趣的是(对我来说!)是逻辑分析仪和FM发射器,但它有点超出我的范围,至少在我理解了一点之前。

我正在阅读“Digital Mc Logic”这本书,我试图理解,但它更多的是基本的“数学”知识,而不是面向实践。

我还下载了“Spartan简介......”我最近命令Papilio Pro将手放在泥土中,所以我希望了解它是如何工作的。

我还参加了FPGA4fun,这很有趣且相对基础。

但在我完成这些介绍之后,我仍然想弄清楚我可以从项目开始。

我有数以千计的PIC / AVR想法,但我不确定它是用FPGA完成的,即使它有任何兴趣/进展,而且我缺乏思考的能力就“逻辑电路”而言。

我希望已经清楚,如果你能帮助我或指导我在一个好的相关/初学者网站上,我将非常感激。

感谢您的支持。

2 个答案:

答案 0 :(得分:0)

FPGA设计与普通软件设计有很大不同,因为FPGA本质上是设计数字逻辑。你的思维方式必须不同。还有一些特殊问题(时序/竞争条件等)是数字逻辑设计所特有的,不适用于软件设计。

我很害怕,但我不认为还有另一种方法,而是首先阅读有关数字逻辑设计的书籍,并建立你对此事的基础理解。

从一些非常简单的设计开始,例如在FPGA板上闪烁LED。

答案 1 :(得分:0)

我真的建议你先实现真正的基本模块,如基本门,MUX,半加法器,全加器等组合电路,触发器,锁存器,寄存器等时序电路。最后实现不同类型的计数器。然后,转向稍微复杂的系统,例如ALU,使用不同的操作和控制信号。

虽然这些看起来都比较基本,但您应该首先尝试使用您喜欢的任何HDL语言开发代码,设置测试平台,围绕模拟这些代码。对于您创建的每个模块,将相应模块的输入挂接到任何基本FPGA上的按钮,并将输出映射到LED并观察输出。为此,您将不得不经历许多复杂的过程,例如实现,优化,平面规划,IO映射,约束以及最终的比特流生成。了解每个步骤是什么以及为什么需要它。一旦您在这种环境中感到舒适(可能需要一些时间),请尝试编写一些基本的波形发生器代码。如果您可以访问函数发生器和DSO,请尝试编写PWM代码并观察DSO上的输出。当你到达这个阶段时,你将足够精通选择一个你喜欢的复杂项目。

现在,这是所有有趣的部分。大多数初学者都不了解的是,HDL与软件语言截然不同。你需要开始考虑硬件。对于您编写的每个代码,您应该能够绘制高级框图并描述您绘制的每个部分的功能。只留下HDL工具的实现细节来决定。然而,这并非总是如此。有时,您可能需要根据结构(实现)编写代码。尝试阅读编码的结构与行为风格。尝试使用这两种样式对加法器和门进行编码。分析两种情况下的实施情况。并查看两种实现的延迟,面积和功率。

所有这些看起来真的很难。一步一步。在接下来的几个月里,你将能够理解我在这里提到的几乎所有术语。