用VHDL如何写时序程序

用 cpld设计所构成的cpi接口系统具有简洁、可靠等优点,是一种行之有效的设计途径。很多技术杂志和网站上,都有不少用cpld设计pci常规传输系统的文章。但用这些方法在mzxplusii、fundition等环境下进行模拟仿真时,其产生的时序往往与pci规范有很大出入。虽然 altera 等公司推出pci核可以直接使用,但这样的内核占用cpld资源较多,且能适配的器件种类少,同时价格也高,在实际设计应用中有很大的局限性。因此,使用通用型cpld器件设计简易型pci接口有很大的现实意义。在compact接口的cpld设计中,笔者根据pci总线传输时序来进行状态机构造,并使用 vhdl语言进行功能模拟和定时分析,从而达到了预期目的。用该方法设计的cpld-pci接口既可支持pci常规传输,也可支持pci猝发传输,而且在系统编程和下载器件方面,效果也都很好。
pci总线传输时序分析
pci 总线传输至少需要40多条信号线,包括数据/地址线、接口控制线、仲裁、总线命令及系统线等。每次数据传输均由一个地址脉冲和一个或几个数据脉冲组成。一次传输一个地址和一个数据的称为常规传输;一次传输一个地址和一批数据的称为猝发传输。常用的控制信号有:帧同步信号frame、主设备准备好信号 irdy、从设备准备好信号trdy、从设备选通信号devsel、命令/字节信号c/be等。
分析pci总线的传输时序,可以看出,pci总线传输有以下几个显著特点:
(1)每次数据传输时首先传出地址和命令字,从设备一般可从地址中确定是不是对本机的访问,并确定访问的首地址;而从设备则从命令字中识别该访问是读操作还是写操作;
(2)读写访问只有在信号irdy、trdy、devsel都为低状态时才能进行;
(3)猝发传输通常需要通过逻辑来实现地址的自动递加;
(4)主从设备中任一方没有准备好,操作中都需要能够引起等待状态插入的活动;
(5)系统通常在帧同步信号frame的下降沿诱发数据传输,而在上升沿指明只有一个数据或只剩下一个数据;
(6)读操作比写操作多一个中间准备过程。