作者 主题:学习FPGA的资源 (Read 3021 times)

0会员和1位客人正在查看此主题。

离线 ralphrmartin.

  • 频繁的贡献者
  • **
  • 帖子:394
  • 国家: GB.
    • 我
RE:学习FPGA的资源
« 回复#50开: 2月09日,2020年,06:05:08 PM»
回到原来的问题,也许不是完全有用的,因为这是VHDL而不是Verilog,我刚刚读
数字系统设计与M. Zwolinski的VHDL
It'相当陈旧,但它确实在正确的步伐(对我来说,无论如何)覆盖了很多有用和有用的想法,涵盖了VHDL可以做些什么以及如何使用它,数字设计中使用的关键元素,以及如何放置他们在一起。
与其他许多其他书籍教授数字设计或教导VHDL,它在手中对待数字设计和VHDL。
I'例如,如果您是进入FPGA的软件人员,请特别推荐它。
 
以下用户感谢此帖子: yansi., aheid.

在线的 rstofer.

  • 超级贡献者
  • ***
  • 帖子:8069
  • 国家: 我们
RE:学习FPGA的资源
« 回复#51开启: 2月09日,2020年,08:35:49»
本书在执行MIPS类型处理器时处理VHDL和Verilog。   他们讨论流水线,但他们不'T为它提供逻辑。

//www.amazon.com/Digital-Design-Computer-Architecture-Harris/dp/0123944244

有一款arm特定版本,可处理VHDL和System Verilog

//www.amazon.com/Digital-Design-Computer-Architecture-ARM/dp/0128000562

两者都非常好,但昂贵。 再次,我需要一个项目以保持我的兴趣。 这两本书都存在足够的代码来成为一个完整的处理器。
 

离线 owo.

  • 超级贡献者
  • ***
  • 帖子:1236
  • 国家: CN.
  • RF Engineer. Discord: //discord.gg/SYZ4WwH9Z
RE:学习FPGA的资源
« 回复#52开启: 2020年2月10日,04:20:39»
一个有价值的项目是采取一些这些构造,如FSMS并合成它们。 然后看看RTL原理图。 如果您推断出闩锁,但赢得了什么,合成器将警告您'T告诉您是否已经推断了优先级编码器以及该优先级编码器是否被实现为一长串逻辑't help with Fmax.
我不'如果您有许多可能的状态,则不同意案件陈述是优选的。就个人而言,我会将其限制为每个进程或几个信号分配,并强制执行每个分支"case"完全相同的分配。永远不要想到它"control flow"喜欢编程;具有信号分配的案例语句是mux。

关于大状态机,答案避免了它们优化的设计  ;)。固有地,具有许多输入的大状态机将产生一个大型组合电路,总是会弄乱您的时机。相反,设计系统更小"building blocks",每个构件块可能有小型状态机。

我仍然愿意看到一个信号的所有可能的来源,而不是所有的东西"happen"在一个状态,因为这种方式立刻告诉我电路就是什么以及任何可能的定时瓶颈。当我需要推理设计时,我不'读取代码,我返回图表。

顺便说一句我不'认为它是一个单一的"machine" that does "actions";而是一个具有一些状态变量的电路,以及一些独立的电路"circuit fragments"数据通过并且可能取决于国家的不同程度。当我查看输出形成电路时,电路的可能性比其他电路更相关,恰好在相同状态期间改变其行为。 换句话说,我不'T认为输出形成逻辑是状态机的一部分,不同的输出形成电路可以是完全独立的(例如,部分生成同步信号VS计算下一个合成器频率的部分。
不和谐: //discord.gg/SYZ4WwH9Zu
电子邮件:[email protected]
GitHub:Gabriel-Tenma-White
 

在线的 rstofer.

  • 超级贡献者
  • ***
  • 帖子:8069
  • 国家: 我们
RE:学习FPGA的资源
« 回复#53开启: 2020年2月10日,04:47:01 PM»
关于大状态机,答案避免了它们优化的设计  ;)。固有地,具有许多输入的大状态机将产生一个大型组合电路,总是会弄乱您的时机。相反,设计系统更小"building blocks",每个构件块可能有小型状态机。

假设最终的速度是'T标准,我们需要弄清楚谁/代码是什么。 我已经看到了机器设计的脱节方法,我不'T将其视为易于阅读的易于读取,作为生成所有输出的单个案例语句。 必须通过几千行代码查找态变量的每次发生(即使是编辑器'find' feature). 因为我将代码视为我写信给我的东西,我不'担心难以施加在工具链上的困难。 他们的编译器作家很聪明'll提出了一个体面的解决方案。

对于我的IBM1130项目,主FSM是907行代码行,52个输入,41个输出和111个州。 非恢复部门可能是具有7个状态的最糟糕的指令和其中一个句子。  It'我在教科书中找到了一个非常好的事情,或者我从来没有将这项工作过得讲究了。

我意识到我可以将其缩小到许多较小的块中,但它只是难题'对于观察者来说,尽可能清楚地究竟发生了什么。 如果我将代码移植到其中一个装备设备,我可能会以100 MHz运行(在斯巴达3e上,它很容易在50 MHz上运行),而原始机器在大约400 kHz上运行。 适度快速为1965 ...

我看到你对小块的观点 代表小电路的代码,我意识到,通过单热编码,我的状态变量是111位宽(疯狂寄存器宽度)。  也许下次我会尝试脱节的方法。

I'不确定有任何'absolutes'在HDL中,我认为它归结为首选。
« 上次编辑:2020年2月10日,06:42:53 PM由Rstofer »
 

离线 ColdFiremc

  • 常规贡献者
  • *
  • 帖子:65
  • 国家: CL.
RE:学习FPGA的资源
« 回复#54开启: 2020年2月12日,05:09:47 PM»
hdl就像html。思维和句子上没有任何共同之处,但概念上有很多,特别是那里's no "Program Counter",文件方向和所有代码一次,除非在明确的程序员要求它时。
 

在线的 james_s.

  • 超级贡献者
  • ***
  • 帖子:14083
  • 国家: 我们
RE:学习FPGA的资源
« 回复#55 on: 2020年2月12日,05:17:47 PM»
那'因为既不是一个是编程语言,他们都没有'既用来描述某事。
 
以下用户感谢此帖子: ColdFiremc


分享我

掘客  Facebook  诽谤  美味的  Technorati.  推特  谷歌  雅虎
SMF.