好的,这个问题更多的是讨论。我有一个在pipelined
中实现MIPS
VHDL
处理器的项目。
我完全了解流水线技术的概念,但我从未使用VHDL
实现它。在pipelined processors
中学习VHDL
的实施有哪些好资源。
我需要一个良好的开端?
答案 0 :(得分:8)
David Harris和Sarah Harris写了一本书Digital Design and Computer Architecture。请参阅第7章“微体系结构”。 7.5讨论使用MIPS处理器模型进行流水线操作。 7.6显示了Verilog和VHDL代码的实现。这是一本教科书,还有第二版,其中来自配套网站的HDL示例显然是VHDL和SystemVerilog。通过VHDL代码,似乎没有强调流水线寄存器,而是强调构建块。 7.5中的数字应该是一个很大的帮助,也可以从配套网站下载。
在opencores网站上有 Ion - MIPS(tm) compatible CPU :: Overview,您可以在其中下载兼容R3000的VHDL模型(注册后)。管道阶段在mips_cpu.vhdl中很明显,其名称前面是它们的管道阶段(例如p1_alu_flags)。有一些测试平台用于锻炼模型及其零件。有关于工具的信息,因此您可以生成在其上运行的软件。
佐治亚理工学院的ECE 3055a课程(参见2000年的 EE 3055 Outline,其中4周专门用于流水线操作。如果你看一下 Lab-2 Help,那么练习就是用VHDL将流水线添加到RTL模型中。显示第一阶段。您可以从中获得的是,您可以在上面的书中暗示的行为模型中添加流水线。您可以下载 VHDL Synthesis Models(尝试 MIPSSYN.TAR)。这里提到的指令模拟器可以在这里找到:Index of ftp://ftp.cs.wisc.edu/pub/spim/。也可以使用Laboratory Assignment 2的描述。谷歌只是在这里充满了线索,而且{{}中描述了MIPS模型3}}。主页A VHDL Synthesis Model of the MIPS Processor for use in Computer Architecture Laboratories。有关在Altera工具中使用的类中使用的一组文件,请参阅主页ECE 3055 Computer Architecture and Operating Systems J. Hamblen。包含VHDL源代码。指令模拟器将用于验证
答案 1 :(得分:2)
首先绘制所需硬件的图片。
如果您已经了解VHDL并且知道一组有限的编码模板,例如逻辑门(和,或者,不是,xor),加法器(+),乘数(*),多路复用器(思考案例陈述),状态机和触发器你都准备好了。确保了解运算符结果大小的特性 - 请参阅交易的VHDL数学技巧以获取帮助:http://www.synthworks.com/papers
接下来为您的照片编码。为硬件画面中的每个部分编写一个过程或分配,并将它们与信号连接在一起。
一个过程的东西和使用一些偏好的变量只是一个改进。立即完成项目。专注于细化并在以后确定您喜欢的编码风格。即便在现在,我的编码风格仍在不断发展。接受它永远不会是完美的。代码不是艺术。完成和蛮力比优雅和仍在调试更好。附:变量很好。对于一些人来说,虽然他们更难以看到硬件含义,所以我不建议他们开始使用它们。如果你觉得它们很容易,那就去吧 - 但是不要说我现在告诫你了。
了解合成工具对于硬件创建的编码样式非常挑剔。所以 您可以随时模拟和合成每个块,这样您就可以了解模拟中的哪些功能以及综合 - 最后您没有很多合成期间的更正