代码之家  ›  专栏  ›  技术社区  ›  Frames Catherine White

大规模VHDL模块化技术

  •  1
  • Frames Catherine White  · 技术社区  · 14 年前

    我正在考虑用vhdl实现一个16位的CPU。 一个简单的CPU。 添加、muls、neg、bitshift、jump、relative jump、breq、relative breq,我不知道这些行中有什么含义> 可能都只处理16位操作数。 我甚至可以减少它,只使用一个操作数和一个累加器。 对于某些状态寄存器,进位、零、负(除非我使用累加器)。

    我知道如何从逻辑门设计所有的部分,并计划从第一原则开始构建它们, 所以对于我的ALU,我需要“构建”一个加法器,一个超前的进位,组加法器, 这个加法器是由两部分组成的,它们本身是由两部分组成的。

    不管怎么说,我的问题不是CPU设计,也不是VHDL(我或多或少知道该语言)。 这就是我应该如何组织事情。 我应该如何使用软件包, 我应该如何命名进程和端口映射?(我从未见过命名港口地图或流程的好处)

    2 回复  |  直到 14 年前
        1
  •  0
  •   Jerry Coffin    14 年前

    看看现有的 examples 不会伤害的。在您所说的级别上(命名约定等),我在硬件设计方面从来没有做过与软件方面大不相同的工作。

    作为旁白,我通常建议 反对 做一些像你自己的加法器之类的事情,除非是因为家庭作业之类的需要。使用FPGA和 轻微地 较小程度上)ASIC,您在设备中有一个现有的硬件“库”,因此 A <= B + c 通常会使用一个加法器电路,已经内置到设备的情况下,一个FPGA或手优化硬宏的情况下,一个专用集成电路。

    写你自己的会花费相当多的额外工作,而且几乎总是会产生更糟糕的结果。在ASIC的情况下,情况会更糟一点;在FPGA的情况下,情况通常会更糟一点。

    编辑:我还应该注意到,一个简单的CPU并不能真正成为一个大规模的设计,至少在IMO上是这样。也许这是由于我在软件方面的背景,但我总是发现CPU的设计相当简单。举个例子,我做过一次DRAM控制器,它看起来像 许多 给我更多的工作。我不记得任何类似于源代码行计数的东西,但是基于内存,我会说它更大(可能是2倍)。当然,这也取决于你决定的CPU有多简单…

        2
  •  2
  •   Jan Gray    14 年前

    无论你做什么,一定要阅读JiriGaisler关于结构化VHDL设计方法的主要著作。

    http://www.gaisler.com/doc/vhdl2proc.pdf 网址:http://www.gaisler.com/doc/structdes.pdf

    你会很高兴的。