2.4 上层交互模块
最后一个模块是上层交互模块,这个模块负责与上层微控制器进行信息交互,它负责把微控制器写入的数据放入相应的寄存器中,或者按上层微控制器的命令回传相关的数据。上层交互模块主要包括边沿信号与电平信号转换、地址解码和读写寄存器。因为协议实现模块中采用的是边沿信号触发,而上层微控制器给FPGA的信号是电平信号,要顺利地完成通信,就需要进行转换,这里通过锁存器和计数器来完成。地址解码就是把收到的地址解码成相应寄存器的地址,然后写入收到的数据或者把寄存器中的数据读出放入到数据总线上。
3 仿真及FPGA实现
为了确保设计的可行性,必须对设计进行时序仿真。整个协议VerilogHDL实现程序在Altera公司的FPGA开发软件QuartusⅡ中编写、编译、综合。整个程序的仿真在Modelsim 6.0中进行,其仿真过程如下:
(1)接收数据。总线控制器发送给实现程序两个数据:0x1234和Ox5678,上层微控制器在实现程序接收数据后通过上层交互模块把数据读出,其中第一个数据包含了接收数据长度,通过图4可以看出整个过程顺利进行,完成了预定目标。
(2)发送数据。总线控制器间隔地发送给实现程序两个发送数据的命令,让实现程序反馈相关的数据,这些数据是通过上层交互模块提前写入到实现程序中的,其仿真过程如图5。通过图5也可以看出在实现程序接收到命令到发送出数据的延时时间大约为4μs,完全符合1553B总线对远程端点反馈信号延时的规定。
(3)一般命令。总线控制器发送给实现程序一般的方式代码命令,代码分别为:000ll,10010,01111和00001,其仿真过程如图6所示。可见,实现程序正确地反馈了相关信息,符合设计要求。