1、在 Protel DXP 中进行 FPGA 设计和仿真2009-09-25 14:02在 Altium Designer 的 Protel 中进行 FPGA 设计和仿真首先说明一下,Altium Designer 的 Protel 中进行 FPGA 设计可以采用:语言设计输入,原理图符号设计输入或者混合输入。象大多数 FPGA 设计软件一样,我们推荐用户采取层次化的设计方式:底层设计,上层例化(调用) 。在底层用语言或原理图符号设计好一个个文件,并将这些文件生成图表符,上层在原理图的环境中将这些代表各个文件的图表符连接起来,并且可以使用我们提供的各种免费的模块(如虚拟仪器,处理器,外设等) ,
2、来完成设计与测试。下面的例子中,我们对一个 VHDL 文件进行仿真,当然,我们也可以对原理图文件建立 Testbench 进行仿真。 在 DXP 主页面下,鼠标左键点击 FileNewProjectFPGA Project,左边的工程资源管理器中就出现了一个名为发FPGA_Project1.PrjFpg 的 FPGA 工程, 现在可以左键点击 FileSave Project as 来改变项目的保存路径和项目名称。在项目名称上右键点击,在引处的菜单中选择 Add new to ProjectVHDL Document ,这样,在当前的工程当中添加了一个新的 VHDL 文件 VHDL1.Vhd,
3、 在VHDL 文件上右键点击,在引处的菜单中选择 Save as 来改变 VHDL文件名称和保存路径。 现在,我们已经在一个 FPGA 工程中添加了一个空白的 VHDL 文件了。接下来,我们在空白的 VHDL 文件中输入 VHDL 源代码,保存文件。完成 VHDL 文件设计后,左键 VHDL 文件名称,在引出的菜单中左键点击 Compile Document xxx.Vhd ,(xxx 是用户自己定义的文件名 ),对这个 VHDL 文件进行编译,如果有什么错误信息就会自动启动消息窗口(Message) ,来提示用户那里有什么样的错误。经检查没有错误后,保存 VHDL 文件。 左键双击 VHDL
4、文件名称,打开 VHDL 文件, 在当前的文本编辑器环境下,左键点击DesignCreat VHDL Testbench, 这时,会自动在本工程中增加一个当前 entity 的 Testbench 文件, 这个 Testbench 文件已经引用了当前的entity ,并且将当前 entity 的所有输入列出来,用户只要给输入加上需要的测试数据就可以仿真了。有一点要注意,这个软件自动生成的Testbench 文件没有任何和时序有关的的信息,如复位, 时钟等基本的信号波形也需要用户自己定义。左键双击 Testbench 文件名称,打开 Testbench 文件, 在当前的文本编辑器环境下,左键点击
5、SimulatorSimulate, 启动仿真程序,这时,就会冒出一个 Project Compile Order 对话框,里面是软件自己认定的编译序列,选择 Yes 关闭这个对话框,紧接着,又会冒出一个 Choose Top Level 对话框,里面依次是:Testbench 文件名称,Testbench 文件的 entity 名称,Testbench 文件的 entity 结构体的名称。选择 Yes 关闭这个对话框。(这两个对话框是在第一次进行仿真才会出现的。 ) 随后,软件会自动生成一个 xxxso 波形文件并打开它(xxx.是当前的工程名) 。并且会冒出一个 Edit Simulati
6、on Signals 对话框,在要观察的信号上面的Show Wave 和 Enabled 下面的方格内打勾(缺省状态已经打勾了) 。选择 Done 关闭这个对话框。左键点击 SimulatorRun To Time 就会冒出一个 Enter Time to Run to 对话框, 在 Time Step 里面输入需要仿真的时间数值和单位, 选择 Ok 关闭这个对话框并且开始仿真。此时,这个 xxxso 文件中就会以波形的形式出现当前设计的仿真结果。用户通过对比输入和输出波形来检查逻辑是否有错误。 在项目名称上右键点击,在引处的菜单中选择 Save Project,保存当前工程和仿真波形文件。P
7、rotel 中进行 FPGA 设计并将其下载到 Nanoboard 进行硬件调试在 DXP 主页面下(打开软件时缺省设置就出现 DXP 主页) ,用鼠标左键点击 FileNewProjectFPGA Project,左边的工程资源管理器中就出现了一个名为发 FPGA_Project1.PrjFpg 的 FPGA 工程, 现在可以左键点击 FileSave Project as 来改变项目的保存路径和项目名称。在项目名称上右键点击,在引处的菜单中选择 Add new to ProjectSchematic,这样,在当前的工程当中添加了一个新的原理图文件 Sheet1.schDoc, 在原理图文件
8、上右键点击,在引处的菜单中选择Save as 来改变原理图名称和保存路径。在项目名称上右键点击,在引处的菜单中选择 Add new to ProjectVHDL Document ,这样,在当前的工程当中添加了一个新的 VHDL 文件 VHDL1.Vhd, 在 VHDL 文件上右键点击,在引处的菜单中选择 Save as 来改变 VHDL 文件名称和保存路径。 现在,我们已经在一个 FPGA 工程中添加了一张空白的原理图和一个空白的 VHDL 文件了。接下来,我们在空白的 VHDL 文件中输入 VHDL 源代码,保存文件。完成 VHDL 文件设计后,左键 VHDL 文件名称,在引出的菜单中左键
9、点击 Compile Document xxx.Vhd ,(xxx 是用户自己定义的文件名),对这个 VHDL 文件进行编译,如果有什么错误信息就会自动启动消息窗口(Message) ,来提示用户那里有什么样的错误。经检查没有错误后,保存 VHDL 文件。 左键双击原理图名称,打开原理图文件,在当前的原理图编辑器环境下,左键点击 DesignCreat Sheet Symbol From Sheet, ,在冒出来的对话框上左键点击要生成一个图表符的 VHDL 文件,选中这个文件,按 OK 键,这时,光标上就会粘上一个绿色的图表符,移动鼠标,把这个图表符放到合适的位置,这时,我们可以看到,源代码
10、的所有端口都在图表符上列出了。如果我们有多个 VHDL 文件模块,我们可以重复这个操作,在原理图中以生成图表符的方式调用各个 VHDL 文件模块,并且可以使用我们提供的各种免费的模块(如虚拟仪器,外设等) ,来完成设计与测试。左键点击 PlaceBus 和 PlaecWire ,用线和总线把各个模块连起来。对要接到 FPGA 芯片 I/O 口上的信号, 可以从 FPGA Nanoboard Port-Plugin.IntLib 库里面拖出一些我们可以直接用的外设的图标,如时钟源,复位键,VGA,串口,键盘,LCD,LED ,ADC/DAC,SRAM ,SDRAM ,SPEAKER ,CAN,
11、JTAG_NEXUS 等接口,把外设图标端口连接到我们设计逻辑的输入输出口上。还可以从 FPGA Instruments.IntLib 库里面拖出一些虚拟的逻辑测试仪器,把这些仪器的输入连接到要观察的网络或总线上,下载后,就可以通过虚拟仪器来观察这些信号了。完成了设计,我们需要一个目标 FPGA 的约束配置文件。下面,我们给现有的设计加一个约束文件。左键点击 ProjectConfiguration Manager. 就会冒出一个Configuration Manager对话框,在对话框的下部中间,在 Constraint Files 旁边,左键点击 Add 按键,会冒出一个 Choose C
12、onstraint file to add to project 对话框,显示的是在 FPGA 目录下的约束文件,包括了所有的 Nanoboard 板上 FPGA 子板的约束文件,我们可以根据现在板子上所插子板的型号和封装,选择对应的约束文件添加到当前工程中来,比如我们选择将 NB1_6_XC2S300E-6PQ208.Constraint 添加到当前工程中来,因为我们选用的是一个 XC2S300E-6PQ208子板。这个约束文件包含了这个器件在 Nanoboard 板上的外设的的所有的I/O 口的位置约束信息,我们可以直接使用这个文件。虽然我们的设计没有用到所有的外设,但我们能用到的外设模块
13、的的端口信息都在这个文件里面,我们直接使用这个文件。左键点击ProjectConfiguration Manager。 。 。在冒出来配置管理器对话框中,左键点击左下角 Configurations 右边的 Add 按键,在冒出来命名框里输入一个配置名称,这个配置是和我们自己建立的约束文件相对应的。在配置管理器对话框中选中配置。 (配置名称下面的格子打上勾) 。右键点击 OK 按键,关闭配置管理器对话框 。 左键点击 View /Devices View ,将 Nanoboard 板通过并行电缆与电脑的并口连接好后上电,左键点击 Live 左边的方格,打勾选中。这时,绿色的电路板图标和 FPGA 的图标。下面还有一行表示我们目前项目中所用的虚拟仪器和 CPU 内核的情况。左键点击右边的Program FPGA 按键,则整个工程开始编译,综合,布局布线,下载 。当下载成功后,子板上绿色的 LOADED 小灯就会亮。这时,我们就可以使用Nanoboard 板上外设模块来对我们设计的逻辑进行调试和验证。