微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于Verilog的SMBus总线控制器的设计与实现

基于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芯片上进行仿真测试,结果表明该方法是稳定有效的。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top