艾巴生活网

您现在的位置是:主页>科技 >内容

科技

fpga sdio主机,SMC主机接口模块设计导入Xilinx环境

2024-09-24 17:34:53科技帅气的蚂蚁
SMC主机接口模块可以很容易地将Synphony模型编译器创建的设计集成到Xilinx嵌入式平台中。Synphony Model Compiler (SMC)是Synphony提供

fpga sdio主机,SMC主机接口模块设计导入Xilinx环境

SMC主机接口模块可以很容易地将Synphony模型编译器创建的设计集成到Xilinx嵌入式平台中。

Synphony Model Compiler (SMC)是Synphony提供的基于模型的工具,它可以综合在Simulink和MATLAB中创建的设计,从而为ASIC和FPGA目标应用生成优化的RTL。SMC包含全面的高级模型库,可以在Simulink环境下创建数学、信号处理和通信设计。该库可以简化高级模型设计环境中固定浮点单速率或多速率算法的捕获和函数调试。SMC RTL生成引擎可以使用这些经过验证的模型来自动创建RTL,并实现多架构硬件实现和对占用空间、性能、功耗和吞吐量的权衡的快速探索。SMC的高级合成引擎采用顶层设计和MATLAB语言输入,可以生成针对所选硬件目标优化的RTL。此外,SMC可以自动生成设计的RTL测试平台,并配有C模型和SystemC封装程序,具有较高的位和周期精度,可以在SystemC仿真环境中对生成的硬件进行验证。

在许多应用中,设计人员创建外设来执行一些信号处理功能,他们必须通过主机处理器(如Xilinx MicroBlaze软处理器内核)来配置外设。主机通常使用标准总线接口(如AMBA AXI4或AXI4-Lite)来连接外围设备。SMC库包括一个主机接口模块,可以实现主机处理器的从机接口。主机接口模块不仅支持AXI4-Lite、APB、通用接口和Avalon-MM总线接口协议标准,还可以通过实现必要的存储器映射寄存器来配置SMC设计,包括FIR滤波器系数、数控振荡器(NCO)的频率和相位设置以及各种长度FFT模块的FFT长度。此外,当实现存储器映射控制寄存器时,主机接口模块可以采用任何所需的采样频率,这可以与总线接口时钟异步。您可以在主机接口模块的UI中指定总线接口和内存映射设置。设计者可以使用主机接口模块将SMC设计连接到总线互连或总线主控器。

现在,让我们仔细看看如何将通过SMC主机接口模块设计的外设导入并集成到Xilinx嵌入式开发套件(EDK)项目中。此外,我们还将研究如何模拟从MicroBlaze的主机处理器到通过标准总线互连连接的外设AXI4-Lite总线的数据传输。这个过程主要有四个步骤:1 .利用IP、主机接口模块和SMC RTL生成引擎在Simulink中创建外设,为设计生成优化的RTL实现方案;2.将外设引入Xilinx EDK项目,并将其与设计的其余部分集成;3.在SDK中开发软件应用;4.生成RTL并仿真,检查软硬件功能是否正确。

步骤1:用SMC库创建外设。你要做的第一件事就是用SMC库模块创建外设的算法实现,并验证功能。然后根据两个因素配置SMC主机接口模块:算法部分的配置数据(可以定义内存映射参数)和系统的互连总线协议(可以定义总线接口参数)。然后连接主机接口模块和外围算法部分。主机模块的一些参数(如总线互连、地址宽度和基址)将取决于您的目标平台。比如我们选择Xilinx Virtex -7 FPGA作为平台,AXI4-Lite作为总线接口。平台对每个外设的地址宽度、基址、地址空间都有一定的限制。地址宽度必须是32位,而基址必须是4K字节的倍数,最小可用地址空间是4K字节。图1和2是如何使用主机接口模块配置总线接口协议和存储器映射的视图。

为了便于集成,尽管不是强制性的,但强烈建议SMC模型中的总线接口端口遵循Xilinx EDK要求的命名约定。将“S_AXI_”添加到标准AXI4-Lite接口信号名称中。例如,AXI地址写通道(AWADDR)的地址信号应该命名为S_AXI_AWADDR。如果信号不符合AXI4-Lite的命名约定,当外设导入Xilinx EDK时,可以将端口名称映射到AXI4-Lite信号名称。此外,不要在Simulink模型名称中使用大写字母,因为EDK不支持名称中带有大写字母的外设。

添加、配置和连接主机接口模块后,您可以使用SMC的RTL生成引擎为外设生成RTL。请在SMC UI中指定目标设备、实施参数和优化限制,以使RTL生成引擎为目标设备生成优化的硬件。在SMC生成的顶层RTL中添加两个虚拟参数(顶层RTL一般是VHDL),命名为“C_BASEADDR”和“C_HIGHADDR”。根据IP要求,其默认值被分配给内存映射空间的基址和内存映射空间的最大地址。该步骤必须确保EDK能够识别外设的存储器映射地址空间。SMC创成式设计的顶级Verilog RTL示例如下所示,有两个参数需要强调。

为了便于集成,尽管不是强制性的,但强烈建议SMC模型中的总线接口端口遵循Xilinx EDK要求的命名约定。

步骤2:将外设导入Xilinx EDK并与之集成。下一步是将外围硬件导入EDK的Xilinx Platform Studio(XPS ),并在系统中进行必要的连接(总线接口端口和功能端口)。在本例中,我们创建了一个基本系统,它包含一个MicroBlaze处理器、一个用于存储可执行软件的模块RAM (BRAM)、一个本地内存总线(LMB)、一个AXI4-Lite互连和一个MicroBlaze调试模块。

在XPS GUI的硬件目录中选择“创建或导入外围设备”选项。这将打开创建和导入外围设备向导。在此向导中选择“导入现有外设”选项。然后指定外围设备的存储路径、设计名称和文件类型(HDL)。现在添加SMC生成的所有RTL文件。成功编译RTL后,需要识别外设支持的总线接口,即AXI4-Lite从接口,如图3所示。

在向导的下一页,选择外围设备的AXI4-Lite端口,并将其映射到标准AXI4-Lite端口,以便EDK可以连接到总线接口。如果SMC模型中定义的总线接口端口名与标准总线端口名匹配,EDK将自动映射端口(见图4)。

如果端口名称不匹配,您可能希望覆盖自动映射,如AXI4-Lite时钟(Clk-Div3)和GlobalReset信号所示。

然后根据第一步插入的RTL的C_BASEADDR和C_HIGHADDR参数,指定寄存器空间基址和高阶地址。请取消选择内存空间选项,因为主机接口模块具有可寻址的配置寄存器空间。但是,在下一页中,RTL参数的默认属性应保持不变,以确保与主机接口模块中指定的参数保持一致。

下一页的标题是“端口属性”。在这里,您必须指定时钟属性,或在所有其他时钟上重置或在设计中重置。请单击下一页上的“完成”将外围设备添加到XPS项目中。外围设备SMC已成功导入XPS。您可以通过查看/pcores文件夹来验证是否成功(XPS会在此处创建一个带有外围设备名称的目录)。浏览目录并检查RTL文件是否正确导入。

此外,XPS将在HDL目录旁边创建一个名为“Data”的目录。该数据目录包含微处理器外设描述(*。mpd)文件、相关外围参数和端口信息。检查时钟和复位端口上是否定义了SIGIS=CLK和SIGIS=RST参数。如果没有定义,您需要编辑*。mpd文件并手动添加定义。图5是添加了这些参数的文件的示例。