将Microblaze处理器添加到块设计中
Microblaze软核处理器IP可用于在FPGA设计中实例化处理器。这个处理器对于控制和配置硬件组件非常有用。本节讨论如何将Microblaze处理器和几个有用的组件添加到块设计中,包括用于标准输出的UART和DDR内存支持。
注意:本节适用于没有Zynq芯片的单板。对于Zynq板,应该使用Zynq7处理系统。
注意:如果您不确定您的板是否有DDR内存,请检查内存列的规格表在本网站的可编程逻辑页面。
- 对于没有DDR内存的单板,请遵循此下拉列表中的步骤
-
注意:根据复位按钮的极性(主动高或主动低),a效用向量逻辑IP可能在重置端口和时钟向导之间插入。这是用来确保IP的主动高复位引脚提供了正确的复位信号极性,并且设计不会在复位时保持,而复位按钮没有被按下。
您的设计至少需要一个时钟向导提供的时钟。如果您的设计需要更多的时钟,那么必须通过时钟向导添加它们。
双击时钟向导IP核以编辑其设置。导航到输出时钟选项卡。中的复选框可将其他时钟添加到时钟向导中输出时钟列,并指定请求的输出频率.此外,如果需要,可以根据它们的预期用途来命名端口。
如果您的设计需要额外的时钟(例如ext_spi_clock针),那么现在就应该添加它们。
点击好吧以确认对时钟向导设置的更改。
如果您不确定是否拥有所需的所有时钟,请不要担心,您随时可以返回并通过重新配置这个IP添加它们。在设计过程中,只要有必要,就可以执行这项任务。
在块自动化运行对话框,几个设置可以指定如何Microblaze IP将连接到其余的设计:
-
本地内存指定块的大小内存内存将被专用于处理器。ddr较少的设计需要更多的内存,而所需的内存数量在很大程度上取决于正在运行的软件应用程序的大小。32KB对于许多小型应用程序来说已经足够了。
-
缓存配置可以帮助设计速度使用DDR存储器。使用DDR时应启用,其他情况下应禁用。
-
调试模块允许您指定调试器的功能。默认的调试只选择建议。
-
外围AXI港口启用或禁用处理器的AXI主接口。它必须启用,以允许处理器连接到硬件外设。
-
中断控制器指定处理器是否可以被其外设中断。是否需要启用它取决于您的设计需求。如果您打算连接到处理器的任何IP必须有中断才能正常工作,则必须选中复选框。
-
时钟连接指定处理器的时钟。使用DDR的设计应该使用MIG的ui_clk引脚,而没有DDR的设计应该使用时钟向导的clk_out1引脚。
注意:此列表中没有出现的设置超出了本指南的范围,可以安全地保留其默认值。
请确认设置符合您的设计要求。应该注意的是,虽然可以手动更改这些设置后(例如,通过手动添加一个AXI intel IP和连接到处理器),这样做将是最简单的方法清除Microblaze处理器的块设计和重新启动添加处理器的过程。这就是说,这里选择的设置很重要。从长远来看,第一次做对会节省你的时间。
点击好吧继续。
-
- 对于带有DDR内存的单板,请遵循此下拉列表中的步骤
-
删除“clk_ref_i”引脚。这可以通过右键点击大头针和选择删除或选择并按下删除键来完成。
验证“ui_addn_clk_0”引脚的频率接近200兆赫通过选择它并查看“Block Pin Properties”窗格中的“Frequency”值。
手动连接“ui_addn_clk_0”引脚到“clk_ref_i”引脚,点击并拖动从一个到另一个。
需要注意的是,“sys_clk_i”引脚不受板文件的约束,您需要添加一个约束文件将其映射到FPGA上相应的引脚位置。
如果您的项目不包含板的主Xilinx Design Constraint (XDC)文件,下面的下拉菜单将详细说明如何添加它。此文件包含您的板对使用它的设计施加的约束——特定接口连接到特定引脚、时钟频率和FPGA银行电压,举例说明。单击下面的下拉列表了解如何将此文件添加到项目中。
- 将主XDC文件添加到Vivado项目
-
下载并提取digilent-xdc-master.zip.这个文件包含了Digilent的所有最新的XDC模板文件,这些文件可以在Github的digilent-xdc存储库。
回到添加资源对话框中,确保所选的约束文件出现在表中。同时,确保复制约束文件到项目检查框。如果不选中此框,则该文件将由项目链接,在项目中进行的任何修改都将影响下载的版本。由于您可能需要在其他项目中再次使用此文件,因此建议复制约束文件,以便您总是可以从一个新的副本工作。
点击完成将约束文件添加到项目中。
如果你的设计需要更多的时钟,而不仅仅是MIG提供的ui_clk,你需要添加一个由MIG的ui_clk驱动的时钟向导IP。
使用“添加IP”按钮搜索时钟向导并将其添加到设计中。
手动连接时钟向导的clk_in1和重置端口到MIG的ui_clk和ui_clk_sync_rst端口,分别。
最后,双击时钟向导打开并配置它。第三个选项卡,输出时钟包含指定需要多少个时钟和什么频率所需的所有设置。右边的屏幕截图显示了配置为创建100的向导兆赫Clk_out1和50兆赫clk_out2。
如果您的设计需要额外的时钟(例如ext_spi_clock针),那么应该在这里添加它们。
注意:如果您不确定是否拥有所需的所有时钟,请不要担心,您随时可以返回并通过重新配置这个IP添加它们。在设计过程中,只要有必要,就可以执行这项任务。
在块自动化运行对话框,几个设置可以指定如何Microblaze IP将连接到其余的设计:
-
本地内存指定块的大小内存内存将被专用于处理器。ddr较少的设计需要更多的内存,而所需的内存数量在很大程度上取决于正在运行的软件应用程序的大小。32KB对于许多小型应用程序来说已经足够了。
-
缓存配置可以帮助设计速度使用DDR存储器。使用DDR时应启用,使用DDR时应禁用。
-
调试模块允许您指定调试器的功能。默认的调试只选择建议。
-
外围AXI港口启用或禁用处理器的AXI主接口。它必须启用,以允许处理器连接到硬件外设。
-
中断控制器指定处理器是否可以被其外设中断。是否需要启用它取决于您的设计需求。如果您打算连接到处理器的任何IP必须有中断才能正常工作,则必须选中复选框。
-
时钟连接指定处理器的时钟。使用DDR的设计应该使用MIG的ui_clk引脚,而没有DDR的设计应该使用时钟向导的clk_out1引脚。
注意:此列表中没有出现的设置超出了本指南的范围,可以安全地保留其默认值。
请确认设置符合您的设计要求。应该注意的是,虽然可以手动更改这些设置后(例如,通过手动添加一个AXI intel IP和连接到处理器),这样做将是最简单的方法清除Microblaze处理器的块设计和重新启动添加处理器的过程。这就是说,这里选择的设置很重要。从长远来看,第一次做对会节省你的时间。
重要!当在一个设计中使用多个时钟时(当使用MIG时,碰巧总是这样的情况),重要的是要验证您选择的是正确的时钟连接从下拉。在右边的截图中,100兆赫选择时钟向导中的Clk_out1。你可能希望使用ui_clk本身来运行你的设计。不要选择MIG的系统时钟输入。
点击好吧继续。
接下来,MIG的AXI接口必须连接到Microblaze的缓存端口,以便允许数据在处理器和DDR内存之间来回移动。