对于大学中期项目,我必须设计一个可配置处理器,以VHDL编写代码,然后在Digilent的Spartan 3E FPGA板上进行综合。我是一个初学者,所以你可以指点我一些关于可配置处理器的信息,以及与这个概念相关的一些想法?在FPGA板上实现的可配置处理器
回答
您可以查看我的answer for a related question。我们做了几乎相同的事情,用VHDL为FPGA电路板构建了一个CPU。
这只是一个样机,所以请注意,我将它清理干净
取instruct1,
取instruct2,取datas1
取instruct3,取datas2,过程datas1
取instruct4,取datas3,过程datas2,商店1 datas1
取instruct5,取datas4,过程datas3,商店2 datas1
取instruct6,取datas5,过程datas4,store3 datas1
取instruct7,取datas6,过程datas5,store4 datas1
取instruct8,取datas7,过程datas6,store5 datas1
基本上这些处理器 第1部分 ALU的主要部件:算术逻辑单元(这是draeing会派上用场) AN ALU具有2个输入端口和一个输出端口。 2个输入端口进行操作并输出结果。要知道ALU必须完成的指令是一个控制端口。 基本上这是命令的名称。所以如果控制端口有4位,则有16条可能的指令。
第2部分 寄存器单元:这是一组存储单元(高速缓冲存储器)。该存储器的内容通常被传送到ALU的输入端口。
第3部分 控制单元:这有点像cpu的管弦乐大师。它的工作是将数据发送到ALU输入 2读取指令寄存器中需要发生的指令,将这些指令发送到ALU控制端口
接口。这是RAM和其他外围设备如何与CPU通信的方式。每次输入结果都必须存储。它可以存储在RAM中,因此一旦结果准备就绪,RAM必须准备就绪。同时,可以发生下一条指令输入的RAM读取。同时,下一条指令可以从RAM中读取。
生成1条指令通常需要超过1个时钟周期。加工结构与工业生产相类似。因此,连锁工作已经完成。
VLIW我们编写的程序是线性的,意味着指令一个接一个地发生。但是今天的CPU(不是ARM)有多个ALU,所以同时处理多条指令。
所以,你必须处理单元链在同一时间(管道) 工作多条指令,你有很多的这些单位的(超标)
然后它变成什么可以/需要做的泰勒一个问题你CPU架构。
我做了一个类似的项目,用VHDL实现了一个带有5级流水线的处理器。首先,您必须了解处理器的工作原理。如果不明白每一种方法在做什么以及需要什么样的控制信号,那么你就没有希望用VHDL写一个。其次,开始绘制指令和数据如何流过处理器(即通过每个阶段)的图表。每个阶段如何相互联系?控制信号去哪里了?我的投入从哪里来,我的产出在哪里?
一旦你有了一个坚实的图表,VHDL中的实际应用应该是相对直接的。您可以使用VHDL的行为建模来从本质上解释您在图表中看到的内容。
- 1. 如何在zynq 7020上使用C/C++实现FPGA协处理?
- 2. FPGA设计的配置管理
- 3. EggOn FPGA实现在Android中
- 4. 多线程可以在单处理器系统上实现吗?
- 5. Verilog中的DWT(FPGA实现)
- 6. 下载处理器实现
- 7. 推动型ABS FPGA实现
- 8. 蟒蛇链表FPGA实现
- 9. 蟒RSA FPGA实现与PKCS1
- 10. 实现可配置工厂
- 11. 实现Rails 3模板处理程序
- 12. 如何实现Java Image处理来做模板匹配?
- 13. 使用Azure资源管理器模板配置Azure批处理
- 14. 在select语句上实现批处理
- 15. 在Xcode 9中实现预处理器?
- 16. 在VHDL中使用fpga处理中断
- 17. Sasebo GII virtex5 fpga配置
- 18. arm或mips核心在fpga中实现
- 19. 是否可以在FPGA上设计一个更小的FPGA?
- 20. nCache的通用型处理器实现
- 21. 实现一组处理的迭代器
- 22. C中的FPGA中断处理
- 23. 上下文处理器与模板标签的最佳实践?
- 24. 实现自定义配置节处理程序
- 25. TASM简单的循环FPGA实现
- 26. 在FPGA上开发图像处理运算符
- 27. 可以实现并行处理吗?
- 28. 使用FPGA板上的USB键盘(VHDL)
- 29. 如何实现待处理的上传到服务器的android
- 30. 如何在weblogic服务器上配置批处理作业