一种基于CPLD的声发射信号传输系统设计
3.3 控制程序设计
pci9054单周期读、写和dma读的vhdl语言时序控制状态机设计如图4所示。图中,s0为空闲状态。当本地总线请求信号lhold被置1时转到s1,否则留在s0。s1为总线保持状态,此状态下应将本地总线响应信号lholda置1。如ads信号为0且lw/r为1则转到s3,如ads信号为1且lw/r和blast为0则转到s4,这种状态表明此次读操作为单周期读。s2为dma读状态,在此状态下应将ready信号和fifo读使能信号ren1置0。如blast为1,则表明此次dma读取还未完成,应继续留在s2,如blast为0,则表明此次dma读取完成,可转到s4。s3为单周期写状态,此状态下也要置ready信号为0以表示写数据有效,并在blast为0时转到s4。s4为读写操作完成状态,当lhold被置0时,表明pci9054不再请求本地总线,此时应转到s0,当blast为0且lhold为1时,表明pci9054还要进行数据读写,故应转到s1继续操作。
3.4 控制程序逻辑的仿真结果
max+plusⅱ是开发aletra公司的fpga/CPLD系列产品的软件工具,本设计利用此工具提供的设计环境和设计工具来对cpld控制程序进行开发和调试。其功能时序如图5所示。
cpld的设计是用vhdl编程实现的。本设计的操作代码都已经过仿真,并在实际调试中得到应用。
评论