Quartus II是Altera公司(现为英特尔旗下公司)推出的一款主流FPGA/CPLD综合设计工具,支持复杂的逻辑设计需求,广泛应用于电子设计自动化领域。Quartus II中的SOPC(System on a Programmable Chip)是一种集成设计方法,它允许设计者将处理器、外设、存储器以及其他硬件组件集成到单个FPGA芯片上,形成一个可编程系统级芯片。DE2开发板是Altera公司推出的一款教育与开发平台,配备了多种接口和资源,方便进行各种硬件实验和设计。
在Quartus II 8.0版本中创建SOPC硬件系统的基本流程包括以下几个步骤:
1. 建立工程:启动Quartus II软件,通过New Project Wizard向导新建一个工程。工程的名称与位置由设计者指定,器件型号(如本例中的EP2C35F672C6)也需要选定。这是整个设计过程的起点。
2. 建立顶层设计文件:工程建立后,需要创建一个顶层设计文件,该文件决定了整个硬件系统的结构。它可以通过原理图、Verilog HDL、VHDL或AHDL等多种设计输入格式来实现。
3. 使用SOPC Builder建立SOPC硬件系统:SOPC Builder是一个设计工具,用于创建定制的SOPC硬件系统。通过它,设计者可以选择并添加所需的组件,如处理器、存储器、外设等。在这个例子中,SOPC Builder被用来建立一个以Nios II/s处理器为核心的系统。
4. 向系统中添加Nios II处理器:Nios II是Quartus II中的一个32位软核处理器,可以灵活配置以满足不同的性能和成本要求。在SOPC Builder中,设计者可以添加Nios II处理器,并进行相应的配置。
5. 添加片上存储器:SOPC系统中,通常需要集成片上存储器以保证系统运行的效率。Quartus II提供了多种存储器配置选项,设计者可以根据需求添加RAM、ROM或Flash等存储器资源。
6. 添加JTAG UART:JTAG UART用于实现FPGA与计算机之间的串行通信,便于调试和数据交换。
7. 添加定时器:定时器是系统中常见的一个外设,用于计时或产生中断信号。
8. 添加自定义组件:对于特定功能的实现,设计者可能需要添加一些自定义组件,如本例中的七段数码管控制器,这些组件可以以IP核的形式集成到SOPC系统中。
9. 自动设置基地址:SOPC Builder能够自动为集成的组件分配基地址,确保各个组件在系统中的地址空间不会相互冲突。
10. 加入System ID模块:System ID模块用于在系统中提供唯一标识,便于系统调试和配置。
11. 生成系统:完成组件的添加和配置后,可以生成整个SOPC硬件系统的代码。
12. 例化Nios II处理器:在顶层设计文件中,设计者需要例化Nios II处理器,将其与SOPC系统中其他组件相连接。
13. 导入引脚分配:设计者需要为SOPC系统中的各个组件分配FPGA芯片上的引脚,这一步骤直接影响系统的物理布局和性能。
14. 编译并下载设计:编译硬件设计后,将生成的程序文件下载到目标FPGA板上,这一步完成后硬件设计才能在实际硬件上运行。
15. 启动Nios II IDE:Nios II集成开发环境(IDE)是一个软件开发工具,用于开发和调试运行在Nios II处理器上的软件。
16. 建立新工程:在Nios II IDE中建立新的工程,并进行必要的系统库属性修改,以适应当前的硬件设计。
17. 修改代码:软件工程师在Nios II IDE中编写和修改应用程序代码。
18. 编译并运行工程:编译软件工程后,生成可在Nios II处理器上运行的可执行文件,然后将其下载到目标板上的Nios II系统中。
19. 在目标板上运行、调试系统:通过硬件调试工具(如逻辑分析仪)和软件调试工具(如Nios II IDE中的ISS)对系统进行全面的测试和调试。
20. 改进软/硬件设计:根据测试结果,设计者可能需要对软硬件设计进行调整和优化,以满足性能要求。
在DE2平台上实现的SOPC系统,如本例中的计数器,包括处理器、存储器、通信接口、定时器、ID模块以及自定义的七段数码管控制器,构成了一个完整的硬件与软件协同工作的平台。通过这个平台,设计者可以开发出功能更加复杂、性能更加高效的应用系统。
1