有没有一个Verilog教程,可以教你如何构建一个非常简单的微处理器?

12

我是一名程序员,希望学习Verilog。

一个非常好的教程应该是一个非常干净的设计,类似于Intel 4004的微型处理器构建教程,并且在使用fpga实际制作它并使其闪烁LED方面进行操作,这将非常棒。

有这样的教程吗?

如果没有,我可能会尝试编写一个,在尝试构建时编写它。 有人可以推荐一些资源吗?例如:好用的开源Verilog编译器,调试工具,模拟器,Verilog教程,廉价的FPGA和编程工具,LED专用面包板等。


我建议使用Verilator。你可以在github.com/dwelch67上查看我的lsasim。 - old_timer
不确定为什么这是不相关的。无论如何,我在这里创建了一个教程 https://github.com/hughperkins/cpu-tutorial - Hugh Perkins
7个回答

6

6
开源工具适用于开发/测试,但无法合成您的HDL以生成比特流,您需要使用Altera或Xilinx(或其他厂商)的制造商工具。
制造商的工具是套件,体积大(5GB安装需要7到12GB的驱动器空间),可在Windows和Linux上使用。可以访问altera.com和xilinx.com。
有很多软核可以使用。opencores.org是一个好地方。
有一个与Arduino兼容的zpuino。
最好从简单开始,逐步构建。获取FPGA板,实现简单设计(LED闪光器),然后从那里开始。这是一个相当陡峭的学习曲线,特别是如果您没有做过太多数字电子工作。
记住,这是硬件,您正在设计电路而不是编写代码,因此时间非常重要。
可以查看fpga4fun.com项目并逐步进行。
基于Xilinx的Digilentinc有一些低成本板,Gadget Factory也有。
基于Altera的Terasic有一些不错的板子。
Gadget Factory目前有一个Kickstarter项目,涉及Paillio +几个附加板。 http://www.kickstarter.com/projects/13588168/retrocade-synth-one-chiptune-board-to-rule-them-al

6
您可以使用GNU Icarus Verilog在没有实际开发板的情况下进行Verilog编程。您可以从这里获取Windows版本。
此外,Niklaus Wirth还提供了一个教程,介绍如何设计和构建一个简单的CPU,并使用Verilog为Xilinx开发板编写代码。

https://www.inf.ethz.ch/personal/wirth/FPGA-relatedWork/RISC.pdf https://www.inf.ethz.ch/personal/wirth/FPGA-relatedWork/ComputerSystemDesign.pdf

是的,这位Wirth就是发明Pascal语言的那个人 -- 他退休后开始涉足FPGA领域。


那个链接似乎已经失效了,但是通过谷歌可以快速找到当前的有效链接: RISC架构的设计及其在FPGA上的实现 - QuantumKarl
谢谢,已修复链接。 - Andriy Volkov

3
不确定是否有关于Verilog的明确教程,但你可能会发现MIT开放课程中这门课很有趣:http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-004-computation-structures-spring-2009/。所有课堂笔记都可以在线查看,而且教学大纲似乎是你感兴趣的(重点在下面):
“6.004介绍数字系统工程学。从MOS晶体管开始,该课程开发一系列构建模块——逻辑门、组合和时序电路、有限状态机、计算机以及最终的完整系统。通过一系列设计示例,探索硬件和软件机制。6.004是任何想要理解(最终设计)数字系统的EECS本科生所需的材料。对材料的良好掌握对于后续的数字设计、计算机架构和系统课程至关重要。在参加6.004之前,学生应该熟悉使用计算机;假定具有编程语言概念(6.001)和电气基础知识(6.002)的初步知识。问题集和实验旨在为学生提供设计数字系统的“动手”经验;在学期中,每个学生都要完成一个精简指令集计算机(RISC)处理器的门级设计。实验室提供工作站以及课程工作人员的帮助,但可以使用Athena机器或家庭电脑完成任务。”

3

1
所有的FPGA供应商都有价格便宜(200~250美元)的开发套件。例如,来自赛灵思的SP601或来自Altera的Cyclone III Starter。我个人拥有一款来自赛灵思的SP605(约500美元)。您可能可以在其他选项(例如Sparkfun)中找到更便宜的选择。

严格来说,虽然您可以找到开源的VHDL / Verilog工具,但我不知道有任何这样的综合工具(制作FPGA将使用的东西)。 XilinxAltera都提供免费(就像啤酒一样)的工具,但它们不是开放或自由(就像自由软件一样)。 Xilinx工具包括模拟器(在免费版本中受限)并且可以在Windows或Linux上运行。 我认为Altera工具类似,但我不熟悉它们。

在Verilog / VHDL中构建一个简单的微处理器是大学计算机体系结构课程中非常普遍的特点。 您无疑可以从几乎任何主要学校找到课堂笔记等内容。


1

有一个优秀的开源Verilog编译器,Icarus。Icarus网页

Icarus Verilog是一种Verilog模拟和综合工具。它作为编译器运行,将用Verilog(IEEE-1364)编写的源代码编译成某种目标格式。

我不知道有关于在verilog中实现微处理器的教程,但是有OpenCores网站。在项目的处理器标签下,我看到许多处理器是用Verilog或VHDL实现的:8080、6502、8051、Z80、6805等等。我认为其中之一会为您提供一个示例,以帮助您入门。


我能否仅使用Icarus将Verilog源代码转换为FPGA?我还需要什么? - John Lawrence Aspden
如果是这样的话,哪种FPGA兼容呢? - John Lawrence Aspden
不,Icarus 进行编译、仿真和综合。Icarus 的输出被馈送到 FPGA 供应商的布局工具中,这些工具将您的综合设计映射到供应商 FPGA 中的资源。 - David Pointer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接