我正在学习在Xilinx(VHDL)上编写代码 . 接下来,我想制作一个简单的微处理器/微控制器,并在此过程中了解切片组件 . 所以我的目标是尝试使用AMD 2901(4位片)对8位微处理器进行编码 . (我已经拥有了2901的代码及其有关输入和输出信号的所有信息 . )
我知道第一步是制作微处理器的架构,所以我最终得到了这样的东西(我知道总线的带宽将与我正在寻找的东西非常不同) .
http://www.cs.binghamton.edu/~reckert/wk15fig1.JPG(基本上我对微处理器和微控制器的了解,我从这里得到它http://www.cs.binghamton.edu/~reckert/hardwire3new.html)
所以这是准时问题:
-
如何编写如图所示的中央总线?如何使用图中央大总线“监听”和“写”我的内存和组件?
-
我想使用2901 ALU(其中两个),所以我有一个8位微处理器 . 问题是:假设我的操作码使用
xxxxx001
(其中x是控制信号,001表示为ALU添加)用于ALU上的添加功能,所以...因为我有一个切片ALU我的操作码应该xxxxx001001
给予对两个ALU的指令?或者ALU应该共享相同的"001"命令? (我想可以知道如何在VHDL中使用总线,制作两个端口"listen"或其他东西 . ) -
如果您可以与我分享一些教程或链接信息,可以帮助我实现我的目标,这将是非常棒的 . 我搜索了很多,发现的信息非常少 .
1 回答
这个答案是关于你问题的第3部分 .
您可能会发现查看the MCPU project非常有用 . 它是77行VHDL代码中的8位CPU . 因为作者已经将整个设计压缩成32个宏单元,所以代码在某些地方有点棘手,但the design document有帮助 .
我还创建了一个针对代码可读性的重构版本,包含在下面 . 请注意,我不是该项目的原作者 - 所有荣誉都归TimBöscke所有 .