对于大学中期项目,我必须设计一个可配置的处理器,用VHDL编写代码,然后在Digilent的Spartan 3E FPGA板上进行合成。我是初学者所以你能指点一些关于可配置处理器的信息,以及与这个概念相关的一些想法吗?

有帮助吗?

解决方案

您可以查看我的相关问题的答案。我们几乎一样,用VHDL为FPGA板构建CPU。

其他提示

这只是一个模型,所以请注意我会清理它 点击 获取instruct1,
获取instruct2,获取datas1
获取instruct3,获取数据2,处理数据1
获取instruct4,获取数据3,处理数据2,存储1数据1
获取instruct5,获取数据4,处理数据3,存储2数据1
获取instruct6,获取数据5,处理数据4,存储3数据1
获取instruct7,获取数据6,处理数据5,存储4数据1
获取instruct8,获取数据7,处理数据6,存储5数据1

基本上这些是处理器的主要组件 第1部分 ALU:算术逻辑单元(这是drainging派上用场的地方) AN ALU有2个输入端口和一个输出端口。 2个输入端口开启,结果输出。要知道ALU必须完成哪条指令,就有一个控制端口。 基本上这是命令的名称。因此,如果控制端口有4位,则有16条可能的指令。

第2部分 寄存器单元:这是一组存储器单元(高速缓冲存储器)。此内存的内容通常会传输到ALU的输入端口。

第3部分 控制单元:这有点像cpu的管弦乐队大师。它的工作是 1将数据发送到ALU输入 2在指令寄存器中需要进行指令,将这些代码发送到ALU控制端口

接口。这就是RAM和其他外设与cpu通信的方式

每次指令输出结果都必须存储。它可以存储在RAM中,因此一旦结果准备就必须准备ram写入。同时,可以发生下一条指令输入的RAM读取。同时,可以从RAM中取出下一条下一条指令。

生成1条指令通常需要1个以上的时钟周期。处理建筑物是工业生产的重要组成部分。所以连锁工作已经完成。

VLIW我们编写的编程是线性的,意味着指令一个接一个地发生。但是今天的CPU(不是ARM)有多个ALU,因此可以同时处理多个指令。

所以你有处理单元链同时处理多个指令(管道) 而且你有很多这些单位(超标量)

然后,它成为了一个问题,即你的cpu架构能够/需要做些什么。

我做了一个类似的项目,在VHDL中实现了一个带有5级流水线的处理器。

首先,您必须了解处理器工作原理的架构。如果不了解每个stange正在做什么以及你需要什么样的控制信号,你就没有希望用VHDL写一个。

其次,开始绘制指令和数据将如何流经处理器(即通过每个阶段)的图表。每个阶段如何相互联系?控制信号在哪里?我的输入来自哪里,输出在哪里?

一旦有了可靠的图表,VHDL中的实际实现应该相对简单。您可以使用VHDL的行为建模来精确地解释您在图中看到的内容。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top