大规模VHDL模块化技术

时间:2010-05-23 04:45:33

标签: cpu naming code-organization vhdl

我正在考虑在VHDL中使用16位CPU。 一个简洁的CPU。 ADD,MULS,NEG,BitShift,JUMP,Relitive Jump,BREQ,Relitive BREQ,我不知道这些行的某些东西> 可能只有16位操作数。 我甚至可以将其剪切掉,只使用一个操作数和一个累加器。 有些状态寄存器,Carry,Zero,Neg(除非我使用Accumlator),

我知道如何从逻辑门设计所有部件,并计划从第一个原则构建它们, 所以对于我的ALU,我需要“构建”一个ADDer,可能是一个Carry Look,组合加法器, 这个加法器它自己构成了几个部分,它们本身由几个部分组成。

无论如何,我的问题不是CPU设计,也不是VHDL(我知道语言,或多或少)。 这是我应该如何保持井井有条。 我该如何使用包裹, 我该如何命名我的流程和端口映射? (我从未见过命名端口映射或进程的好处)

2 个答案:

答案 0 :(得分:2)

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

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

你会很高兴的。

答案 1 :(得分:0)

看一些现有的examples不会受到伤害。在您正在谈论的级别(命名约定等)我在硬件设计方面从未真正做过与软件不同的事情。

顺便说一句,我通常建议反对做像你自己的加法器这样的事情,除非它是必需的东西,因为它是家庭作业,或类似的东西。使用FPGA和(到略微范围)ASIC,您在设备中有一个现有的硬件“库”,因此像A <= B + c这样的东西通常会使用已经构建的加法器电路在FPGA的情况下进入器件或在ASIC的情况下进入手工优化的硬宏。

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

编辑:我还应该注意到一个简单的CPU并不真正有资格成为大型设计,至少是IMO。也许这是由于我在软件方面的背景,但我总是发现CPU设计相当简单。举一个例子,有一次我做了一个DRAM控制器,对我来说似乎更多的是很多。我不记得有什么像源代码行计数,但基于内存,我会说它更大(可能是2倍)。当然,它还取决于您决定使用CPU的简单程度......