下图为一般配置的PIO CORE:具有输入,输出和中断信号引脚,通过Avalon-MM接口与系统交互。下图提供了支持双向口功能的实例图:PIO内核的Avalon-MM接口由单个Avalon-MM从端口组成。从端口能够进行基本的Avalon-MM读和写传输。AvalonMM从端口提供IRQ输出,以便内核可以声明中断。寄存器配置“基本设置”(Basic Setting)页面指定I / O端口的宽度,方向和复位值。I / O端口的宽度可以设置为1到32之间的任何整数值。可以将端口方向设置为以下所示的选项之一:可以指定输出端口的复位值。合法值的范围取决于端口宽度。选项启用单个位设置/清除输出寄存器(Enable individual bit set/clear output register)允许设置或清除输出端口的单个位。启用此选项后,将实现两个额外的寄存器(起始寄存器和清除寄存器)。可以使用这些寄存器来指定要设置和清除的输出位。输入选项(Input Options)页面允许指定边缘捕获和IRQ生成设置。在“基本设置”页面上选择“仅输出端口”时,“输入选项”页面不可用。打开“同步捕获”(Synchronously capture)以在内核中包括边缘捕获寄存器edgecapture。当指定类型的边沿出现在输入端口时,边沿捕获寄存器允许内核检测并生成可选中断。用户必须进一步指定以下功能:
选择边缘补获类型:
2. 打开边缘捕捉寄存器的启用位清除功能(Enable bit-clearing for edge capture register),以清除边缘捕捉寄存器中的单个位。要清除给定的位,请将1写入边沿捕获寄存器中的位。
当输入端口上发生指定事件时,打开“生成IRQ”以断言IRQ输出。用户必须进一步指定IRQ事件的原因:
1.电平---每当特定的输入为高电平时,内核就会产生一个IRQ,并为该输入允许中断进入中断屏蔽寄存器(interruptmask)。
2. 边缘---每当边沿捕获寄存器中的某个特定位为高电平并为中断屏蔽寄存器中的该位使能中断时,内核就会生成一个IRQ。
当Generate IRQ关闭时,中断屏蔽寄存器不存在。
通过“仿真”)(Simulation)页面可以指定仿真过程中输入端口的值。打开测试台中的Hardwire PIO输入,以在测试台中将PIO输入端口设置为某个值,并在Drive input to to字段中指定值。