【问题标题】:Configurable processor implemented on FPGA board在 FPGA 板上实现的可配置处理器
【发布时间】:2010-09-18 17:50:52
【问题描述】:

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

【问题讨论】:

    标签: processor vhdl fpga configurable


    【解决方案1】:

    您可以查看我的answer for a related question。我们做了几乎相同的事情,用 VHDL 为 FPGA 板构建了一个 CPU。

    【讨论】:

      【解决方案2】:

      这只是一个模型,所以请注意我会清理它

      获取指令1,
      获取指令2,获取数据1
      获取指令3,获取数据2,处理数据1
      获取指令 4,获取数据 3,处理数据 2,存储 1 数据 1
      获取指令 5,获取数据 4,处理数据 3,存储 2 数据 1
      获取指令 6,获取数据 5,处理数据 4,存储 3 数据 1
      获取指令 7,获取数据 6,处理数据 5,存储 4 数据 1
      获取指令8,获取数据7,处理数据6,存储5数据1

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

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

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

      界面。这就是 RAM 和其他外围设备与 cpu 通信的方式

      每当指令输出结果时,它都必须被存储。它可以存储在 RAM 中,因此一旦结果准备好,就必须准备好 RAM 写入。同时,可以对下一条指令的输入进行 RAM 读取。同时,可以从 RAM 中获取下一条下一条指令。

      生成 1 条指令通常需要超过 1 个时钟周期。处理指令类似于工业生产。这样链式工作就完成了。

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

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

      这就变成了一个可以/需要做什么来定制你的 cpu 架构的问题。

      【讨论】:

        【解决方案3】:

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

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

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

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

        【讨论】:

          猜你喜欢
          • 2020-06-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-13
          相关资源
          最近更新 更多