Vivado操作流程
Vivado是Xilinx公司推出的一款支持其7系列及更新系列FPGA的高级综合工具,可用于创建、综合、实现、仿真和调试FPGA设计。本次我们将通过一系列步骤,介绍如何利用Vivado设计流程进行FPGA设计,以创建一个简单的流水灯实验为例。 Vivado设计流程分为ProjectMode(项目模式)和Non-projectMode(非项目模式)。在项目模式中,所有的设计元素如源文件、约束和综合实现等都包含在一个项目中,便于管理。非项目模式则允许用户在不创建新项目的情况下直接工作,适合于一些快速的、简单的操作。项目模式是推荐的使用方式,尤其对新手友好,因为它可以指导用户完成一系列设计任务。 在创建项目之前,需要先打开Vivado 2017.1开发工具,然后根据向导进行新项目的创建。创建时需要设定工程名称和存储路径,注意名称和路径中不能有中文和空格,一般推荐使用字母、数字和下划线。此外,创建项目时,可以先不指定设计源文件,这样可以跳过在新建工程过程中添加源文件的步骤,之后再根据需要补充。 选择项目类型为RTL Project(寄存器传输级项目),并选择目标FPGA器件。在这里,以Xilinx的数模混合口袋实验室中的Artix-7 XC7A35T-1CSG324-C芯片为例。确认器件信息与设计要求一致后,完成项目创建。此时将得到一个空白的Vivado工程界面。 接下来,需要进行设计文件的输入。如果已有设计文件,可以使用AddFiles选项添加;如果需要新建设计文件,则选择CreateFile选项。在输入文件名时,同样需要注意不能有中文和空格。之后,根据设计需要定义模块的I/O端口和方向,并设置总线宽度。通过DefineModule中的I/OPortDefinition来完成这一步骤。 一旦设计文件创建并定义好端口,接下来就可以在设计文件中输入HDL(硬件描述语言)代码了。以Verilog为例,编写相应的代码来实现流水灯的设计逻辑。例如,在提供的代码片段中,定义了一个模块flowing_light,该模块接收时钟信号clk和复位信号rst,输出16位的led信号。模块内部定义了两个24位和16位的寄存器来存储计数和灯的状态,并通过always块中的逻辑来实现流水灯效果。 设计输入完成后,需要进行仿真实验以验证设计逻辑的正确性。在Vivado中,可以创建一个测试平台,编写激励信号来模拟时钟和复位信号,从而验证LED灯输出是否符合预期。 仿真验证通过后,就需要对设计进行综合和实现。这一步包括逻辑综合(将HDL代码转换成FPGA可用的逻辑网表)、布局布线(在FPGA芯片上放置逻辑单元并连接它们)和生成比特流文件(bitstream)。比特流文件是最终要下载到FPGA上的文件,用于配置FPGA以实现设计的功能。 在实现阶段,可以通过I/O Planning添加管脚约束,指定哪些物理引脚对应设计中的逻辑引脚。此外,还可以通过编写约束文件来实现更细致的管脚分配和时序约束,确保设计在FPGA上按预期运行。 将生成的bitstream文件下载到FPGA开发板中,即可看到流水灯的效果。至此,完成了整个Vivado设计流程,从创建项目到最终实现设计的硬件功能。 通过以上步骤,我们可以看到Vivado提供的是一整套完整的FPGA设计解决方案,涵盖从设计输入到硬件实现的全流程。对于单片机和FPGA设计领域,掌握Vivado不仅能够提高设计效率,还能通过高级优化和调试功能提升设计质量。