《最成交量赛道》投资须知
06-18
许多 FPGA 应用可以受益于使用简单的软核处理器来简化时序控制结构的生成。
作者:Adam P. Taylor e2v Corporation 工程系统主管 PicoBlaze 是一款紧凑型 8 位软核微控制器,FPGA 工程师可以在选择 Xilinx FPGA 时使用它。
它被实例化。
一旦实现,处理器就完全包含在 FPGA 结构中,仅使用逻辑片和块 RAM;不需要外部易失性和非易失性存储器。
由于其实现的封装面积较小,FPGA可以容纳多个PicoBlaze实例化。
每个实例化都用于实现通常由状态机创建的控制结构。
这不仅减少了开发时间,而且还允许采用标准化方法来生成控制结构。
由于 Xilinx FPGA 结构的高性能潜力,PicoBlaze 实例化的性能通常优于许多分立 8 位微控制器。
让我们看看如何在我们的设计中充分利用这个方便的设备。
PICOBLAZE架构 在使用这款处理器之前,我们先来了解一下它的架构。
PicoBlaze 是一款非常简单的基于 RISC 架构的 8 位微控制器(如图 1 所示)。
该控制器有一个 12 位地址端口,这意味着它可以处理多达多个内存位置。
图 1 – PicoBlaze 架构、处理器(左)和内存(右) 每个地址位置都包含一条 18 位指令,用于定义处理器必须执行的操作。
处理器的输入和输出可以通过两个8位端口(一个输入端口,一个输出端口)。
该控制器还提供一个 8 位识别端口,通过该端口最多可以读取或写入一个外设。
此外,控制器还提供高速暂存存储器,大小可选64或字节。
与所有微处理器一样,PicoBlaze 包含算术逻辑单元并支持中断。
这些特性意味着该控制器可以为 FPGA 设计工程师带来许多优势。
PicoBlaze 最重要的方面之一是它具有高度确定性,这意味着所有指令都需要两个时钟周期来执行,而中断可能需要最多四个时钟周期来服务。
(您可以通过下载 Xilinx 用户指南了解有关 PicoBlaze 架构的更多详细信息。
) 如何使用PICOBLAZE? FPGA应用通常需要并行和顺序操作的结合,其中数据流主要采用并行操作,而控制结构主要采用顺序结构实现,例如状态机。
(请参阅第 46 期“如何在 FPGA 中实现状态机”)。
然而,如果以状态机的形式实现,复杂的控制结构可能会变得笨重,不仅延长验证时间,而且使开发周期中的后期修改变得困难。
复杂的状态机也需要更多的时间来开发,如果需要开发几个,则需要相当长的时间。
此外,您还可以使用 PicoBlaze 通过 RS、I2C 和 SPI 接口控制串行通信。
事实上,您使用典型 8 位微处理器实现的任何功能都可以在 PicoBlaze 中实现,而且性能更高。
工程师已使用 PicoBlaze 在控制系统中实施 PID 控制器。
他们将 PicoBlaze 与 I2C、SPI 或并行 DAC 结合使用,创建各种参考波形,例如方波、锯齿波和三角波以及更复杂的正弦/余弦(使用移位加 CORDIC 算法)。
在 FPGA 中实例化 PicoBlaze 微控制器来实现这些定时功能不仅可以缩短开发时间,还可以在开发周期的后期进行简单修改。
当然,作为一个软核,PicoBlaze 还有助于解决过时问题,并在您开发 ASM 模块时支持设计重用。
首次 PICOBLAZE 实例化 遵循这几个简单的步骤,您就可以在您的设计中快速实现 PicoBlaze。
首先,确保您将在目标设备中使用的微控制器是最新版本。
您可以从 Xilinx PicoBlaze 下载区下载这些微控制器产品,该下载区提供支持最新 7 系列器件以及与旧版 Spartan?-3 和 Virtex?-4 器件配合使用的微控制器的版本。
服务器版本。
下载正确的处理器版本后,将这些文件解压缩到您的工作目录中,并确保您可以阅读“自述”文件,根据需要密切注意路径设置和 Xilinx 环境。
多变的。
在您的工作目录中,您会注意到以下文件或应用程序,以及有用的自述文件、许可证文件和用户指南。
? KCPSM6.Vhd:这是真正的PicoBlaze 源代码。
? KCPSM6.exe:这是一个汇编程序,可用于生成所需的机器代码和内存文件。
? ROM_Form.vhd:这是一个可执行汇编程序,用于生成 VHDL 文件,您创建的程序将存储在其中。
? KCPSM6_design_template vhd:这是一个 PicoBlaze 处理器模板实例。
? All_kcpsm6_syntax.psm:该文件是所有汇编命令和语法的定义。
对于我们的示例设计,如果您不想将 PicoBlaze 及其程序存储器添加到现有项目中,那么作为最后一步,您应该在我们的 ISE? 设计套件中创建一个新项目,我们可以在其中实例化 PicoBlaze 和它的程序存储器项目。
完成上述步骤后,我们就可以开始在应用程序中创建 PicoBlaze 处理器了。
在最简单的层面上,您只需在设计中声明两个组件:一个是处理器本身,另一个是程序存储器,如图 1 所示(处理器位于左侧的框中,内存位于左侧的框中)提供上下文的权利)。
当然,如果需要实现多个实例化,则应该提供多个内存组件来存储不同的程序。
然而,我们首先需要了解一个典型项目的开发流程。
开发流程 创建您的第一个 PicoBlaze 实例实际上非常简单。
第一步是使用 Notepad++ 等编辑器创建一个空白文本文件。
该文件应具有 .PSM 文件扩展名,例如“test.psm”。
您可以使用 PicoBlaze 汇编器对微控制器进行编程。
Xilinx在All_kcpsm6_syntax.psm文件中提供了该语法的详细介绍,大家可以自行下载。
无论如何,这种语法很容易理解和掌握。
图 2 是一个简单程序的汇编代码片段示例,该程序使 LED 闪烁,运行频率为 2Hz,时钟频率为 40MHz。
图 2 – Project Flash LED 的汇编器代码片段 一旦您对汇编器感到满意,就可以继续下一步:通过您下载的汇编器可执行文件运行程序。
这将生成一个内存文件(FPGA 中使用的 VHDL)、一个日志文件和一个十六进制文件,我们将在稍后介绍其用途。
图 3 显示了针对上述代码片段运行的汇编程序流程。
运行汇编程序后,您现在可以在 FPGA 中实例化 PicoBlaze。
图 3 – 使用 KCPSM6 汇编器生成内存文件 您现在拥有两个所需的 VHDL 文件:KCPSM6.vhd 和由包含您的应用程序的汇编器创建的 VHDL 文件(在本例中为测试 .vhd)。
步骤 2: 在 VHDL 设计中声明两个组件(KCPSM6 和内存)并实例化它们(如图 4 所示)。
这个简单的 VHDL 示例可以在图 5 所示的代码片段中看到。
这个 VHDL 示例实现了 PicoBlaz,使 LX9Spartan? 开发板的 LED 闪烁。
图 4 – PicoBlaze 上下文框图 图 5 – 用于使 LX9 Spartan 开发板上的 PicoBlaze 闪烁 LED 的代码片段 模拟和验证 在应用程序中完成设计文件的实例化后,您可以在综合和实现之前肯定希望在仿真环境中验证系统或模块的性能。
由于 PicoBlaze 使用逻辑片和块 RAM,因此您可以在 Mentor Graphics 的 Mod-elSim 或 Xilinx ISE 的 ISim 中实现 PicoBlaze(如果您在 Vivado? 设计套件中的 Xsim 中实现 PicoBlaze,则使用程序进行仿真也非常简单例如 Xsim)。
由于 Block RAM 包含程序指令,因此模拟工作自然很简单。
基本上,您只需要提供实例化所需的时钟和其他输入和输出。
图 6 显示了在 ISim 中执行的 PicoBlaze 仿真的结果,以及指令加载之间的两个时钟周期。
图 6 – ISim 仿真结果 图 6 – ISim 仿真结果 升级您的程序 将 PicoBlaze 内置到 FPGA(和位文件)中的最大优势之一是,PicoBlaze 在安装之后安装FPGA 配置完成后,开始直接在其 RAM 中运行程序。
但是,在某些情况下,您可能需要修改该处理器核心正在执行的程序。
尽管根据设计其余部分的复杂性,您也许能够重新运行实现阶段(包括更新的内存文件),但这可能非常耗时,特别是如果您只是在实验室中尝试每种可能性。
因此,您可以在重新运行实现阶段来调试软件程序之前,使用 JTAGloader 更新处理器内核的程序存储器。
JTAG加载器也可以通过下载获得。
在使用 JTAG 加载程序之前,您首先需要在设计设置中启用它。
在程序存储器的实例化中使用通用 C_JTAG_LOAD-ER_ENABLE:integer := 1。
请注意,您一次只能为设计中的一个内存实例设置此参数。
在设计中启用此程序后,您必须从 JTAG_loader 目录中选择与您的操作系统匹配的版本,并将其复制到您的工作目录(hex 文件所在的位置)。
现在您可以打开命令窗口并导航到工作目录并使用以下命令。
jtagloader –l .hex 注意:我已将我的操作系统重命名为可执行版本,即 jtagloader.exe。
当您对最新的 PSM 文件运行汇编器时,此操作将下载创建的十六进制文件,如图 7 所示。

下载文件后,您会注意到 JTAGloader 停止处理器执行并将新程序下载到内存中在释放处理器复位之前,此时处理器开始运行新程序。
一旦您对 PSM 文件的更新行为感到满意,您可以重新运行实现和位文件生成,以确保下次配置设备时执行更新的程序。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-18
06-17
06-17
06-17
06-18
06-18
06-17
06-06
06-17
06-08
06-18
最新文章
使用电子管有哪些注意事项?如何检查电子管之间是否短路?
博通支付1200万美元和解SEC财务欺诈指控
八名运营商高管确认加入虚拟运营商
内蒙古农牧区雷电灾害成因分析及防雷对策
北京联通将5G应用于世园会远程医疗急救
TD-SCDMA最后一轮冲刺测试启动,产业前景更加光明
专访阿里云总裁王健:云计算服务平台梦想成真
USB2.0控制器CY7C68013的接口设计与实现