基于Verilog的SMBus总线控制器的设计与实现
时间:06-05
来源:互联网
点击:
3 仿真
(1)从器件地址为1110010,主器件写11001101,写一个字节,命令为00000110。
(2)从器件地址为1110010,内部数据为10001100,主器件读一个字节,命令为00000111。
用modelsim6.0进行前仿真,波形图如图4所示。
从仿真结果上看,总线波形满足SMBus总线的时序要求(符合图2的格式)。
用Altera公司的quartus II 4.0综合后,下载到Altera ep1k30 FPGA芯片上进行测试,测试结果一切功能正常。
4 实际应用
本文设计的SMBus总线控制器应用于PCI-EXPRESS桥接芯片中,框图如图5所示。
在芯片初使化阶段,外围器件需要向桥接芯片的配置表内写入关于外围器件的一些属性(attribute),这样桥接芯片才能正常工作。因为这些信息比较特殊,所以用SMBus总线传输比较合适,而这正是在该芯片中应用SMBus控制器的原因。
5 注意事项
(1)SDA和SCL都定义为双向口,既要接收数据也要发送数据。在双向口的使用上,要注意读数据时要将双向口置为高阻态。
(2)状态机采用两个always块设计,一个时序always块和一个组合always块。这样写不但易于综合,而且清楚明了,便于实现。
本文采用有限状态机的方法,将SMBus控制器分为与SMBus接口的模块和与μC接口的模块两个模块,从而实现SMBus总线控制器的设计。并将其应用于PCIPCI-EXPRESS桥接芯片中,通过软件及在altera公司的 ep1k-30 FPGA芯片上进行仿真测试,结果表明该方法是稳定有效的。
- 基于SystemC 的系统验证研究和应用(08-10)
- SoC:IP是新的抽象(10-24)
- 从传统电路检查到先进可靠性验证的最佳实践(07-03)
- 基于Verilog语言的等精度频率计设计(08-14)
- Verilog串口通讯设计(06-06)
- Verilog HDL 设计模拟(06-06)