作为设计者,在FPGA设计中您可以访问众多外设器件的内部寄存器。一旦将FPGA设计下载到目标器件中并且代码已经运行在相应处理器上,与这些寄存器进行交互的典型方法是通过嵌入式代码进行的。任何针对寄存器值的更改都意味着对处理器的相关内存空间的访问,或者是在代码级的修改、重新编译、重新下载,这些过程是很麻烦的,尤其是当您不能轻易、直观地看到这些修改时。 Altium Designer版本10推出了新的Peripherals面板,在嵌入式设计中,当与外设器件的内部寄存器进行交互时,应用此面板将十分方便。当处理器暂停时,在调试过程中是可以访问的。可以在面板中访问”under the bonnet” ,就像一个智能的”窗口”一样,通过它您可以观察外设的状态。在此面板中不仅可以读取寄存器的当前状态,而且可以做任何的修改,以及在运行中写入一个即时生效的新值。 访问Peripherals面板,是通过Embedded面板访问按键进行的,当进入调试界面时,它位于主设计窗口的的右下角。 图1 访问Peripherals面板 应用外设面板简化设计调试。外设面板是一个可以对外设内部寄存器在较高层次上进行调试的智能入口。 面板内容 下面各列信息可以显示在面板中。通过 右键»Columns»下级菜单来控制信息的显示与关闭。 Peripheral – 这一列显示出了所有当前设计中占用的、用户可以访问其内部寄存器的外设。在层次化设计中,顶层为外设在原理图或OpenBus文档中定义好的位号。第二层次由寄存器本身组成。如果要和寄存器进行独立的位一级的交流,那么将应用第三层次。 Address – 这一列显示了每个寄存器在处理器中地址空间的十六进制地址。 Width – 这一列显示了每个寄存器的位宽。 Decimal – 这一列以十进制显示了寄存器的当前值。 Hexadecimal –这一列以十六进制显示了寄存器的当前值。 Binary – 这一列以二进制显示了寄存器的当前值。 Char –这一列以字母形式显示了寄存器的当前值。注意位一级的寄存器条目在这种格式下没有显示出来。 Symbolic – 这一列以符号形式显示了寄存器的当前值。 Description – 这一列显示了对外设、内部寄存器以及独立位的描述。 编辑寄存器的值 在面板上所显示的所有列中,只有Decimal、Hexadecimal、Binary 和 Symbolic 这几列是可编辑的。编辑其中某一列后将会影响到其余三列的参数值。 如果想要改变某寄存器的值,只需点击想要更改的寄存器的相关区域或者位即可。改变顶层寄存器的值,可以通过直接输入新值的方式进行。对于寄存器的一个独立位,比如一个控制寄存器位,直接输入新的值’0′ or ’1′(当编辑十进制、十六进制或二进制时),或者从下拉菜单中选择所需的新值(当编辑符号形式时)。按下Enter键后,新输入的值立刻被装载到寄存器中。 修改过的寄存器值将以红色字体高亮显示,同时会影响到寄存器的其他参数。当继续更改其它寄存器,或关闭面板并重新访问此面板时,字体会变回通常的黑色。 图2 编辑寄存器的值 以一种更合理、更高效的方式修改寄存器的值——一种对调试工具很有价值的增强。 复制到剪贴板 面板中的信息可以拷贝到粘贴板,并用于其它应用程序。复制的命令可以从右键菜单中找到,并且可以复制当前选中的信息或所有信息。当要复制特定信息时,是可以进行选择的: 一个或多个顶层外设条目。 一个或多个二级寄存器条目。只有这些寄存器属于同一外设,它们才能被选中。 一个或多个三级寄存器位条目。只有这些位属于同一外设,它们才能被选中。 图3 复制到剪贴板 由外设面板复制信息到粘贴板,然后按照需求将其粘贴到某外部程序。 面板中只能复制信息。将信息在外部程序中修改后粘贴回面板是行不通的。
|