当前位置:文档之家› 基于FPGAHDL的随机读写I2C串行总线接口电路设计

基于FPGAHDL的随机读写I2C串行总线接口电路设计

本文由ccna751贡献
pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
苏州大学 硕士学位论文 基于FPGA/HDL的随机读写I<'2>C串行总线接口电路设计 姓名:刘蓓 申请学位级别:硕士 专业:微电子与固体电子学 指导教师:毛凌峰 20080501
基于FPGA/HDL的随机读写12C串行总线接口电路设计
中文摘要
基于FPGA/HDL的随机读写12C串行总线接口电路设计
中文摘要
i2c(Inter Integrated
Circuits)是Philips公司开发的用于芯片之间连接的串行总线,
以其严格的规范、卓越的性能、简便的操作和众多带12C接口的外围器件而得到广泛 的应用并受到普遍的欢迎。 现场可编程门阵列(FPGA)设计灵活、速度快,在数字专用集成电路的设计中得 到了广泛的应用。本论文主要讨论了如何利用Verilog/FPGA来实现一个随机读/写的 12C接口电路,实现与外围i:c接口器件E2PROM进行数据通信,实现读、写等功能, 传输速率实现为100KBps。在Modelsim6.0仿真软件环境中进行仿真,在Xilinx公司
的ISE9.1i开发平台上进行了下载,搭建外围电路,用Agilent逻辑分析仪进行数据采
集,分析测试结果。 首先,介绍了微电子设计的发展概况以及设计流程,重点介绍了HDL/FPGA的设 计流程。其次,对12C串行总线进行了介绍,重点说明了总线上的数据传输格式并对
所使用的AT24C02 E2PROM存储器的读/写时序作了介绍。第三,基于Verilog.HDL
设计了随机读/写的12C接口电路、测试模块和显示电路;接口电路由同步有限状态机 (FSM)来实现;测试模块首先将数据写入到AT24C02的指定地址,接着将写入的数 据读出,并将两个数据显示在外围LED数码管和发光二极管上,从而直观地比较写入 和输出的数据的正确性。FPGA下载芯片为Xilinx
SPARTAN III
XC3S200。第四,用
Agilent逻辑分析仪进行传输数据的采集,分析数据传输的时序,从而验证电路设计的 正确性。最后,论文对所取得的研究成果进行了总结,并展望了下一步的工作。
关键诃:VLSI设计Verilog_HDL
FPGA/CPLD
12C总线接口 作 者:刘蓓
指导老师:毛凌峰、钱敏
望!!!鲤旦!墅垡2翌型堕!型墨曼型!三竺兰婴垒!曼竺

!也唑!竺!望旦!堡旦!竺垒2璺!£鱼型坚望生
Design of Random
垒垒!型
Write/Read
on
i2C Serial Bus Interface
Circuits Based
FPG枷DL
use
Abstract
12C(Inter
Integrated
Circuits)is a
serial bus used to connect chip components developed
by Philips Company.With its stringent specifications,excellent performances,ease of
and many external devices with 12C interface,it is widely used
and welcomed. Arrays(FPGA)is wildly
Digital ASIC design based
applied
on
Field Programmable Gate
with
its hilgh flexibility.In this paper,a random read/write 12C interface circuits is for data
discussed
all
and implemented using Verilog/FPGA

communication(read/write)witll
E2pROM,achieving
of
1 00KBps
transmission
rate.The
design
is
simulated in
ISE9.1 i of
Modelsim6.0
Mentor Company,and
are
downloaded in developing
platform
Xilinx.The
external circuits
constructed for
testing,and the implemented data
i2c interface
are
circuit is tested witll Logic Analyzer of Agilent via
acquisition.The
testing results
analyzed,thus the
designed resul

t is verified.
First of all,the
development of microelectronics design and the
on
design
flow are
illustrated,focusing
the HDL/FPGA design flow.Secondly,the 12C serial bus were
on
simply introduced,focusing
listed of
data transmission
formats,and
12C
the
timing
sequences are
writing/reading
AT24C02
EzPROM with
interface.Thirdly,a random
display circuit
are
read/write 12C interface circuits,testing module 、航tll Verilog_HDL.The
and inspecting
designed
State
interface circuit is realized、历tll synchronous Limited
is
Machine(FSM).Testing module address then read
designed
to write
data
into the
E2pROM
at a designated
it out.Finally,the writed/read
data
are outputted to the external LED
display circuits,thereby,the correctness of the two displayed
design
is verified directly by comparing the
data.FPGA
chips for download is Xilinx SPARTAN III XC3 S200.Fourth,
Agilent Logic Analyzer is used to acquire the transmission
dam,and
the timing sequences
are
analyzed
to venfy
the correctness of the circuits

on
design.
Finally,a summary is presented base stage are promoted.
the research results,and prospects of the next
Keywords:
VLSI
Design,Verilog_HDL,FPGA/CPLD,12C
Written
Supervised

Interface
by:Pei Liu by:Lingfeng Mao、Min Qian
苏州大学学位论文独创性声明及使用授权声明
学位论文独创性声明 本人郑重声明:所提交的学位论文是本人在导师的指导下,独立进 行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含 其他个人或集体已经发表或撰写过的研究成果,也不含为获得苏州大学.
或其它教育机构的学位证书而使用过的材料。.对本文的研究作出重要贡 献的个人和集体,均己在文中以明确方式标明。本人承担本声明的法律 责任。
研究生签名:
蛰溢

期:
逝!皇:f羔
学位论文使用授权声明
苏州大学、中国科学技术信息研究所、国家图书馆、清华大学论文 合作部、中国社科院文献信息情报中心有权保留本人所送交学位论文的
复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本. 人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文 外,允许论文被查阅和借阅,可以公布(包括刊登)论文的全部或部分 内容。论文的公布(包括刊登)授权苏州大学学位办办理。
.研究生签名:.
导师签名:‘
这虚
日期:.2唑:篁:堡 型呈!兰:堕
圭茎签生日期:
’乞凌锋
基于FPGA/HDL的随机读写12C串行总线接口电路设计
第一章微电子设计概述
第一章微电子设计概述
四十年前,英特尔创始人之一的摩尔预言,集成电路的复杂度每18个月翻一番。 到目前为止,此定理仍然支配着半导体工业的发展。当今微电子工业的产值占世界经 济总产值的4%,己经是全世界最大的产业。预测表明,在今后25年里,更将占到世 界总产值的8%。象所有迅速发展的产业一样,发展导致了分工,细致的分工又推动着 更高速的发展。传统半导体工业在过去的40年中急速地细化着,首先是派生出三个相 互基本独立的部分:微电子工艺、微电子设计、微电子检测【11121。 八十年代中期以来,微电子学科的三个基本领

域以很高的速度继续细分下去,出 现了第三层、第四层甚至第五层的子领域。从我们涉及的领域来讲,这里只把微电子
设计的主要子领域罗列如下:
硬件描述语言(HDL): 仿真/综合工具(EDATools); FPGA仿真工具(Simulation
Tools); hag);
电路模块库(Reusable Model
ASIC(专用IC)设计。
进入90年代以来,ASIC设计又细分为:
数字逻辑电路设计(Digital Logic Design)
模拟电路设计(Analogue
Circuit
Design)
混合电路设计(Mixing Design) 后端设计(Back.end Design)
当然,微电子工艺和微电子检测也在不断的细分中,并与微电子设计的各子领域 相互交叉。总之,微电子学己经发展成了庞大的多学科交叉体。几乎没有一个人可以 同时在它的两个第三层领域里工作,甚至同时涉足两个第四层领域也不是一件容易的 事情。由于本课题的工作主要是利用硬件描述语言进行数字逻辑电路的设计,下面将 就课题所涉及的几个方面作一概述。
基于FPGA/HDL的随机读写12c串行总线接口电路设计
第一章微电子设计概述
1.1微电子设计发展概况
微电子设计是传统电子电路设计与半导体学科相结合产生的边缘学科。早期的集 成电路设计实际上仅是掩模设计,电路的规模非常小,电路的复杂度也很低,设计工 程师有一般的电路知识己足够用。设计部门只是半导体工厂的一个部门,甚至不是最 重要的部门,其工作方式主要依靠手工作业和个体劳动【31。 40年后的今天,超大规模集成电路(VLSI)的电路规模都在百万门量级,专门的 电路知识领域和极高的设计难度已非以往半导体工厂所能及,也非一般电子设计部门 所能及。电路知识领域的划分不再停留在计算机一通讯一测量一工业控制等大的范围, 甚至也不再是个人机一大型机一工控机的水平。仅就PC机而言,一家微电子设计公司, 规模之大如英特尔,也很难同时插手CPU,IDE,VGA,Chip.set,MPEG等主要芯片 中的两个,其领域分工之细、电路知识之专精、设计难度之大由此可见一斑。就工作 方式而言,一块集成电路的设计需要多个团组协同工作1。 近一、二年来,微电子设计工业的分工仍在进一步细化和调整。典型的例子如:样 片的计算机测试已经从设计公司分离出去成为一个独立的产业,而布局布线等后端环 节

逐渐从设计部门转移到生产部门。在微电子设计工业的这一轮新的细化中有三个重 要动向尤其引人注目。
第一、功能块电路有明显的知识产权化、商品化和标准化的趋势。砷叫、型公司发
挥自己的长处,专攻一种电路的设计,为各大公司提供商业化的服务。 由于分工又细了一层,产品的性价比、生产周期、技术服务等指标必然又精了一 层。各大公司权衡利弊后已经开始遵从市场规律,订购一些辅助功能块的电路,如A/D、 D/A转换电路,锁相环(PLL)振荡电路等。大设计公司开始向系统集成公司演变, 并发展出片上系统。 第二、直到目前为止,各晶片加工公司设计和使用自己的综合元件库;这不但增 加了本公司的生产成本,也为设计公司带来不便。以生产综合器著称的Synopsys公司 目前正在有计划地全力推动元件库标准化、商业化的过程,并希望抢先占领商业化元 件库的市场。这是一个符合技术、生产不断细化分工规律的行动,一定会形成一个潮 流,成为一个新兴领域。 第三、各EDA工具大公司为了促销的目的,纷纷推出出租EDA使用权的服务,

基于FPGA/HDL的随机读写12C串行总线接口电路设计
第一章微电子设计概述
费用相应便宜了很多。各小公司则推出适用于中、小规模设计的PC版本EDA工具。 这样,不但EDA工具本身的价格低廉很多,PC机及其配套硬件环境也比大型EDA所 需的工作站环境便宜很多。 功能块电路基本上是中、小规模设计;元件库的设计工作量虽大,但每个元件的 规模则非常小。这都与我国目前的微电子设计能力有比较好的衔接。 因此,前两个动向为中国的微电子设计界提供了两个可能的进入国际市场的切入 点,而第三点则为我国中、小电子企业的升级提供了一个取得廉价设计工具的途径。
1.2超大规模集成电路的设计流程
超大规模集成电路设计的典型流程如图l所示。
系统设计h卜叫
行为仿真
二[ =[ =[ 二[
综合
网表
RTL设计
篆赢
物理仿真 铡试
布局布线
。样片
图1超大规模集成电路设计的典型流程
芯片设计分类【4】【5J
芯片设计通常分为正向设计与逆向设计两大类。正向设计通常用来实现一个新的 设计,而逆向设计是在剖析别人设计的基础上进行某种修改或改进。在这两大类中可 分为“自顶向下"(mp—down)和“自底向上"(bottom—up)不同的步骤,如表l所示。 系统设计指的是框图设计,如同软件设计中的流程图设

计,包括写出设计规范, 即抽象地描述所设计电路的功能、接口以及整体结构。这时,不需要考虑如何用具体 电路来实现系统结构。 完成了系统设计与行为仿真之后,通常需要进行向寄存器传输级(RTL)描述的 转换。RTL设计如同软件设计中的编程,程序员按照系统设计的规定为每个方框编写

基于FPGAJHDL的随机读写12C串行总线接口电路设计
第一章微电子设计概述
\步骤 方法\

表l芯片设计分类
自顶向下
(Top-Down)
自底向下
(Bottom—Up)
版图分析 电路图提取
版图分析 电路图提取 功能分析 单元设计 功能块设计 子系统设计 系统设计 系统划分、分解 单元设计 功能块设计 子系统设计 系统总成
向 设 计
功能分析
结构修改 逻辑设计 电路设计 版图设计 行为设计
逆 向 设 计
结构设计 逻辑设计 电路设计 版图设计
程序,使之符合系统设计规定的外特性。同时程序员必须研究算法,以求编程的高质 量。当然,RTL设计的结果同样需要经过功能仿真和FPGA验证,以保证源代码的逻 辑功能正确。在功能仿真中,所有的物理延时都为0,因此也称为0延时仿真。从这 步之后,设计过程是在计算机辅助设计工具的帮助下完成的。 经过方案论证、逻辑设计和相关的验证,逻辑综合开始了从逻辑设计走向电路实 现的第一步。综合是把Verilog源代码映射到具体的工艺上加以实现生成网表的过程。 从这一步开始,设计过程与实现工艺相关联。 网表是对门级电路的描述,是纯粹的结构性描述,可以使用Verilog HDL语言实 现对网表的描述。网表中的所有器件都包含有必须的工艺参数,如固有门延时、输入 阻抗、驱动能力、温度特性、电压特性、上升时间、下降时间及面积等。 正是由于这些工业参数的存在,门级仿真十分接近于真实芯片的物理测试。门级 仿真中的组合测试验证芯片在不同工作环境中的性能。网表是产生版图的自动布局布 线工具的输入信息。对于设计者来说,这一步通常被称为后端设计。在版图生成之后, 把从版图中提取出的参数反标Nt'-J级网表中,进行包含门延时、连线延时的门级仿真, 称作物理仿真。这一步主要是进行时序模拟,如果时序不能满足设计要求,通常需要 修改版图的布局布线、逻辑综合的约束条件,有时也有可能要回到RTL描述、系统级 设计加以调整。

基于FPGA/HDL的随机读写12C串行总线接口电路设计
第一章微电子设计概述


1.3硬件描述语言
伴随着集成电路的设计规模日益增大,复杂程度日益增高,门级描述变得难以管 理,不得不采用更抽象层次的描述方法,并接受高层次的、自顶向下的设计方法。逻 辑图和布尔代数曾经是描述硬件的方法,但随着系统复杂程度的增加,这种描述变得 过于复杂,不便于使用。在高于逻辑的抽象层次上,这种方法很难以用简练的方式提 供精确的描述,在自顶向下的设计方法中不能再把它当作通常的描述手段,而硬件描 述语言HDL(Hardware
Descripti011
Language)则逐渐成为满足以上要求的新方法。
HDL[6】描述电路的原则和方法与传统电原理图方式有着本质的区别。HDL只对电 路的性状进行规定。正是由于HDL的概性,其设计文件较电原理图精练得多,处理庞 大电路的能力也就增大很多。自项而下(Top-.down)与自底而上(Bottom—up)相结 合的设计方法是现代电子电路设计方法的组成部分,在大型电路的设计中尤其重要, HDL与这种设计方法有着很好的配合。这是HDL广泛应用于超大规模集成电路设计
的重要原因之一。
HDL使用的另一个重要原因是HDL设计的“分层结构"(Hierarchy)为仿真 (Simulation)带来很大的方便。设计部门可以在任何一个需要的层次上,为不同目的 大型电路进行功能验证。HDL设计结构使自上而下的分层仿真成为可能。一次百万门 以上的底层仿真常常耗时十几小时,自上而下的分层仿真使底层仿真的次数大大减少,
从而缩短生产周期。
HDL的形式是普通文本,可以在任何文字处理环境中编辑。以电原理图为基础的 电路设计CAD通常没有这种灵活性,它们必须在特定厂家生产的CAD环境中编辑。 从文件管理的角度看,HDL设计远较电原理图好管理。HDL源程序的注释可以从 各个角度帮助设计工程师和文件管理员。与电原理图相比,HDL文件包含更多的一目 了然的管理信息。所需要的是真实的电路,在HDL文本设计与真实电路之间需要一个 特殊的转换环节一综合(Synthesis)。综合器使用预先设计好的元件库自动优化综合过 程,使百万门量级的庞大电路在十几个小时中得以实现。HDL的广泛使用是建立在功
能强大的综合器的基础上的忉【引。
但是,人类的眼一脑系统更适应图形,而不适应于文字,HDL的文本形式降低了 它的可读性。沿着“增加概括性、提高可读性"的思路,一种更高层次的电

路描述方

基于FPGA/HDL的随机读写12C串行总线接口电路设计
第一章微电子设计概述
法,可视HDL(Visual HDL),在学术界和工业界悄然而起。实际上,可视HDL就是
流程图,是HDL语言的上一个层次,它更概括、更直观,不久的将来必定在微电子设 计中扮演重要的角色。
1.4
Verilog_HDL的发展与特点
Verilog
HDLig][1川是在C语言的基础上发展起来的。它最初是于1 983年由GDA
(Gateway
DesignAutomation)公司为其模拟产品开发的硬件建模语言。那时它只是一
种专用语言。由于他们的模拟、仿真器产品的广泛使用,Verilog_HDL作为一种便于 使用且实用的语言逐渐为众多设计者所接受。在一次努力增加语言普及性的活动中, Vedlog_HDL语言于1 990年被推向公众领域。Open
Verilog
International(OVl)是促
进Verilog发展的国际组织。1992,OVI决定致力于推广Vefilog OVI标准成为IEEE 标准。这一努力最后获得成功,Verilog语言于1995年成为IEEE标准,称为IEEE
STDl364.1995。 Verilog
HDL简洁而优美,描述电路的语言结构简单易读。相比较而言,VHDL
的描述长度是Verilog_HDL的两倍。与VHDL相比,Verilog_HDL的最大优点为:它 是一种非常容易掌握的硬件描述语言,如果有C语言的编程经验,可以在一个较短的 时间内很快的学习和掌握,因而可以把Verilog_HDL内容安排在与ASIC设计等相关 课程内部进行讲授。由于HDL语言本身是专门面向硬件与系统设计的,这样的安排可 以使学习者同时获得设计实际电路的经验。与之相比,VHDL的学习要困难的多,很 难在较短的时间内真正掌握,而在似懂非懂的前提下进行实际电路的设计,对培养良
好的设计风格反而会产生不利的影响。
在美国,高层逻辑电路设计领域中Verilog HDL和VHDL的应用比例是60%和 40%;在我国台湾地区各为50%;在我国大陆目前由于它们的使用才刚刚开始,具体 应用比例还没有统计。Venlog_HDL是专门为复杂数字逻辑电路和系统的设计仿真而 开发的,本身就非常适用复杂数字逻辑电路和系统的仿真和综合。目前,Vefilog

标准

还支持模拟电路的描述,使得其不仅支持数字逻辑电路的描述还支持模拟电路的 描述,因此在混合信号电路系统的设计中,它必将会有更广泛的应用。在深亚微米 ASIC/SOC已成为电子设计主流的今天,Verilog HDL的发展前景是非常大的。

基于FPGA/HDL的随机读写12C串行总线接口电路设计
第一章微电子设计概述
1.5可编程逻辑器件综述
FPGA[11】【12】验证在超大规模集成电路设计中占有重要地位,因此有必要介绍一下
可编程逻辑器件的知识。 可编程逻辑器件(Programmable Logic Device)也称为可编程ASIC,是70年代发
展起来的一种新型逻辑器件,当初主要用以解决数字系统中各类存储问题,发展至今 已经成为实现数字系统的一种重要手段。可编程逻辑器件实现了设计阶段的硬件仿真 (Simulation),使得微电子设计实现了早期集成和软硬件联合验证。设计者可以快速 地创建一个芯片设计的硬件模型,利用仿真软件将设计映射到可重复编程的电路器件 中。由此产生的虚拟硅片与真实芯片的功能一致,可以确保正确的时序关系,运行真 实的软件。从而使得工程师们可以在制造IC之前,就能够快速地发现和改正故障,观 察芯片设计在它的目标环境中运行,减少甚至避免了以往反复制造样片的过程,最直 接的结果就是节省了开发时间和费用。因此当它面世之后,就一直快速地发展,已经 成为实现ASIC的一种日益重要的手段。
1.可编程逻辑器件的发展概况
可编程逻辑器件经历了以下三个主要发展阶段: (1)早期的可编程逻辑器件,如可编程只读存储器(PROM)、紫外线可擦除只 读存储器(EPROM)和电可擦除只读存储器(E2PROM)三种。由于结构的限制,它 们只能完成简单的数字逻辑功能。 (2)结构上稍为复杂的可编程芯片,即可编程逻辑器件(Programmable
Logic
Device),产品主要为PAL(可编程阵列逻辑,Programmable Array Logic)、GAL(通 用阵列逻辑,Generic
Array
Logic)和PLA(可编程逻辑阵列,Programmable
Logic
Array)。它们的设计具有很强的灵活性,但也只能实现较小规模的电路。 (3)20世纪80年代中期,出现了类似于PAL结构的复杂型CPLD(Complex
Programmable
Logi

c Device)和与标准门阵列类似的FPGA(Field
Programmable Gate
Array),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围广等特点。这 两种器件兼容了PLD和通用门阵列的优点,可以实现较大规模的电路,编程也很灵活。 与全定制和半定制ASIC相比,它们又具有设计开发周期短、设计制造成本低、开发

基于FPGA/HDL的随机读写12C串行总线接口电路设计
第一章微电子设计概述
工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应 用于产品的原型设计和小批量的产品设计之中。 从可编程逻辑器件的发展来看,根据其结构的复杂程度的不同可以将其分为三类: (a)简单可编程逻辑器件(PLD)
(b)复杂可编程逻辑器件(CPLD) (c)现场可编程门阵列(FPGA)
2.FPGA简介
现场可编程门阵列(FPGA)是近十年加入到用户可编程技术行列中的器件。现场 可编程门阵列在器件的选择和内部的互连上提供了更大的自由度。FPGA的结构类似 于掩膜可编程门阵列(MPGA),由逻辑功能块排列成阵列组成,并由可编程的内部连 线连接这些逻辑功能块来实现不同的设计【131。
FPGA[111【121是由掩膜可编程门阵列和可编程逻辑器件两者特性结合演变而来的,
所以FPGA既具有门阵列的高密度和通用性,又有可编程逻辑器件的用户可编程特性。 对于ASIC设计,采用FPGA在实现小型化、集成化和高可靠性的同时,还减少了风 险,降低了成本,缩短了周期。 FPGA可以达到比PLD更高的集成度,但具有更为复杂的布线结构和逻辑实现。 PLD与FPGA之间的主要差别是PLD通过修改具有固定内连电路的逻辑来进行编程。 所有FPGA是在用户可编程的特性和它们的快速设计以及诊断能力上类似于可编程逻 辑器件。对于快速周转的样机,这些特性使得FPGA成为用户的首选,而且FPGA比 CPLD/16J更适合于实现多级的逻辑功能。
3.可编程逻辑结构(Programmable Logic Structures)
尽管FPGA、CPLD和其他类型PLD的结构各有其特点和长处,但总体来说,它 们由三大部分组成: 位于芯片中央的可编程逻辑块(逻辑单元);. 位于芯片四周的可编程I/O; 分布在芯片各处的可编程布线资源。 可编程逻辑器件要实现芯片上集成系统,还需要具有第四种资源:

片内RAM。

基于FPGA/HDL的随机读写12C串行总线接口电路设计
第一章微电子设计概述
可编程逻辑器件的结构可以分为细粒度和粗粒度两类。根据逻辑块和输入/输出块 的功能大小不同,来决定此种结构是细粒度还是粗粒度的。 .粗粒度:此种逻辑块和输入/输出块包含相对大数量的可编程性能。这些结构也倾 向于使用复杂的连线资源。. 细粒度:此种逻辑块为一小的,相对简单的核。 细粒度结构导致器件开始向门阵列发展。因为细粒度器件没有粗粒度器件那么复 杂,细粒度器件的预编译、布局与布线分析就比较简单,结果也比较容易预计。 根据布局布线前后的信号延时的计算,可编程逻辑器件也可分为可确定和不可确 定两大类。大多数情况时,布局布线前有一些不可预测的延迟,复杂的结构和连线资 源将使延迟的计算更加困难,常常难以预测。
4.FPGA设计流程【17】
要设计一颗FPGA,其过程与一般的ASIC设计其实是大同小异的【14】【1 51。在前端 设计方面,最终的目的是以FPGA厂商提供的库为基础,设计一组网表,这一阶段可 以选择使用Verilog的高层次设计或者使用画电路图的方式设计,然后对其进行综合, 产生门级网表文件;在后端设计方面,即是以前述的网表去作布局与布线,再进行布 局后的模拟验证,最后将其结果烧录或者下载到FPGA中。各厂家的可编程逻辑器件 的设计流程大致一样,具体设计步骤如下: 第一步:按照“自顶向下一的设计方法进行系统划分。 第二步:利用Verilog_FIDL语言生成设计的源代码,这是高层次设计中最为普遍 的输入方式。此外,还可以采用图形输入方式(框图、状态图等),这种输入方式具有 直观、容易理解的优点。 第三步:将源代码进行编译,使之成为机器能识别的表达式。对于大型设计,要 进行代码级的功能仿真,主要是检验系统功能设计的正确性,因为对于大型设计,综 合、适配要花费数小时,在综合前要对源代码仿真,可以大大减少设计重复的次数和
时间。
第四步:利用综合器对Verilog源代码进行综合优化处理,生成门级描述的网表文 件,这是将高层次描述转化为硬件电路的关键步骤。综合优化是针对ASIC芯片供 应商的某一产品系列进行的,所有综合的过程要在相应的厂家综合库支持下才能完成。

基于FPGAfflDL的随机读写12C串行总线接口电路设计
第一章徽电子设计概述
综合后,可利用产生的网表文件进行适配

前的门级仿真,仿真过程不涉及具体器件的 硬件特性,较为粗略。 第五步:利用适配器将网表文件针对综合时确定的目标器件进行逻辑映射操作, 包括底层器件配置、逻辑分割、逻辑优化和布局布线。适配完成后,产生多项设计结 果:适配报告,包括芯片内部资源利用情况,设计的布尔方程描述状况等;适配后的 仿真模型;器件编程文件。根据适配后的仿真模型,可以进行适配后的门级仿真,因 为已经得到器件的实际硬件特性(如时延特性),所以仿真结果能比较精确地预期未来 芯片的实际性能。如果仿真结果达不到设计要求,就需要修改Verilog源代码或选择不 同性能的器件,直至满足设计要求。 第六步:将适配器产生的器件编程文件通过编程器或者下载电缆下到目标芯片 FPGA中。如果是大批量产品开发,通过更换相应的厂家综合库,可以很容易转由ASIC 形式实现。
5.可编程逻辑器件的发展趋势
目前可编程逻辑器件正朝着为设计者提供系统内可再编程的能力方向发展,也就 是说,可编程逻辑器件不仅要具有可编程和可再编程能力,而且还要具有把器件插在 系统内或电路板上,就能对其进行编程或再编程。这就为设计者进行电子系统的设计
和开发提供了新的实现手段。采用系统内可再编程(ISP,in system-programmable
logic
device)技术,使得系统内硬件的功能可以像软件一样被编程和配置,从而可以实时地 进行灵活和方便的更改和开发。这种称为“软’’硬件的全新的设计概念,使新一代的 电子系统具有极强的灵活性和适应性。它不仅使电子系统的设计和开发以及产品性能 的改进和扩充变得十分简易和方便,而且使电子系统具有多功能的适应能力,为实现 许多复杂的信号处理和信息加工提供新的思路和方法。 不断地提高集成电路工艺水平以及不断地改进器件本身的内部结构,都将使可编 程逻辑器件的性能得到提高。采用深亚微米技术和更多层的金属布线以及器件结构本 身的改进,使得可编程逻辑器件的集成度和运行速度有极大的提高。 在结构上,可编程逻辑器件也将有很大的改进,主要有下面几点: (1)芯片内将包含内置的逻辑分析装置,支持D/A和A/D,并包含达到500MHz的差 分接口;
lO
基于FPGA/HDL的随机读写12C串行总线接口电路设计
第一章微电子设计概述
(2)采用片内锁相环,支持高速时钟,并减少信号的畸变,实现时钟的复用; (3)提供更为丰富的布线资源,进一步

简化逻辑和I/O功能块; (4)随芯片线宽的缩小,芯片的工作电压相应降低,I/O块必须具有兼容几种电压标 准的能力,保证新的工作电压下器件能与前几代的器件在不同电压下兼容。
6.SPARTAN 3S400
SPARTAN
FPGA芯片简介
3S400是Xilinx[is】公司生产的一款高性价比的FPGA芯片。SpartanTM.3E
平台FPGA系列将大量的可编程逻辑、知识产权(IP)核、高级时钟电路和嵌入式存 储器与多种快速互连结构整合在一起。Spartan-3 FPGA为完善的片上系统(SOC)设 计提供了一个单一的、可轻松定制的平台。其芯片外形如图2所示:
Mask Revision Code
Fabrication Code
Process Technology Device Type Package Speed Grade Temperatu
re
Date Code LolCode
Range
Pin P
图2
QFP封状的XC3S400-4PQ208C顶视图
其典型参数罗列如下: 系统门:400K; 等效逻辑单元:8064;
CLBs:896:
分布式RAM:56K
Block RAM:288K;
bits;
DCMs:4:
Decicated
Muxs:16;
最大I/o:264:
最大差分对数:116。 其配置模式包括:
1l
基于FPGA/HDL的随机读写12C串行总线接I=1电路设计
第一章微电子设计概述
主串模式、从串模式、主并模式、从并模式、JTAG模式;本开发系统提供主串 和JTAG两种配置模式。工作在主串模式时,需要外接存储器,本开发系统中采用了
XCF02S
2M容量的FLASH。
1.6
Xilinx
ISE开发系统简介【19】
Xilinx公司的ISE Series软件是一系列完全集成的、方便易用的EDA工具,支持 所有的Xilinx FPGA和CPLD在Windows NT、Win2000、WinXP以及Linux操作系统 上的开发,主要分为:
输入工具、综合工具、仿真工具、实现工具和辅助设计工具等
5大类。其使用方法简单,仿真时可单步执行,便于仿真调试及验证电路。而且支持 目前比较流行的硬件描述语言VHDL和Verilog_HDL等。
1.设计的输入工具
ISE的设计输入工具主要包括HDL编

辑器(HDL Editor)、状态机编辑器(State CAD)、原理图编辑器(ECS)、IP核生成器(Com Generator)和测试激励生成器(HDL
Bencher)等。 HDL编辑器(HDL Editor)可以完成设计电路的语言输入
状态机编辑器(State CAD)采用状态转移图方式设计状态机 原理图编辑器(ECS)用于电路的原理图输入,提供强大的元件库 IP核生成器(Core Generator)提供大量设计成熟,高效邛核为用户所用 测试激励生成器(HDL Bencher)辅助用户设计测试激励文件
2.综合工具(Synthesis)
ISE的综合工具为XST,可以外挂的常用综合工具有Synplisity公司的Synplify
/Synplify
Pro,Synopsys公司的FPGA
Complier II/Express,Exemplar Logic公司的
Lmeonardo Spectrum。
3.实现工具(Implemention)
12
基于FPGA/HDL的随机读写12C串行总线接口电路设计
第一章微电子设计概述
ISE集成的实现工具主要有约束编辑器(Constraints Editor)、引脚与区域约束编 辑器(PACE)、时序分析器(Timing Analyzer)、FPGA底层编辑器(FPGAEditor)、 芯片观察窗(Chip Viewer)和布局规划器(Floor planner)等 约束编辑器(Constraints Editor)帮助工程师设计用户约束文件(UCF),UCF指 导实现过程。 引脚与区域约束编辑器(PACE)可将信号指定到I/O管脚,并对设计进行面积约
束。
时序分析器(Timing Analyzer)分析实现结果是否满足约束条件、芯片的工作速 率以及关键路径等时延信息。 FPGA底层编辑器(FPGA Editor)读取FPGA的布线信息(NCD)文件,用图 形化界面显示FPGA内部CLB及IOB模块结构,根据用户的设置与修改生成物理约 束。 布局规划器(Floor planner)能够灵活的改变FPGA内部CLB和IOB的连接配置 情况。 在综合完成之后,对FPGA而言,设计实现可以分为以下几个流程:编译规划、 布局布线、程序比特流文件的产生。FPGA设计实现后产生的一系列报告文件用于设 计者了解实现过程的有关信息如编译报告、规

划映射报告、布线前静态时序时延报告、 布局布线报告引脚报告、布线后时序时延报告等。 如图3所示为开发工具软件运行时的界面:
,¨,+:●1’nt·h,I’一‘.…’p…t’㈨h1,
巨瞳墨■四■■皿口雹互暖囝孤墨互已墨墨互E曩翻■墨嚣舄瞄嘲嬲凝缀荔l{l馨藩§驺搿÷。尊簪j~,.捌捌
.5 1
2’卅疗。÷÷÷^乏≥x嗨倒2,·,一×x声矿i鼍点r,,蜻鸩^i~……一~!j.
图3
Xilinx
ISE开发工具软件运行时的界面
基于FPGA/HDL的随机读写12C串行总线接口电路设计
第一章微电子设计概述
4.仿真工具(Simulation)
ISE自带仿真工具,可以外挂的仿真工具主要有Model Tech公司的仿真工具 ModelSim和测试激励生成器HDL Bencher等。 ModelSim仿真速度快、精度高,支持VHDL、Verilog
HDL Verilog
LDH_。真仿合混及
Bencher可根据电路设计输入,自动生生成测试激励。支持VHDL、
HDL及HDL原理图输入方式。 Express用来完成布线和布局设计,它允许综合VHDL和Verilog的混合设
FPGA
计。综合过程运行完整的综合流程之后产生必要的文件。 ISE开发软件的设计仿真可以分为功能仿真和时序时延仿真功能仿真是在设计 输入之后且综合之前进行的可以用来验证设计逻辑时序。时延仿真在综合和布局布线 之后进行,能够得到包括目标器件的详细的时序。时延信息可以通过创建使用图标表 示工作台HDL(不需要文字描述)的测试文件,或者通过修改模板文件(查看VHDL 或Verilog的测试台模板)来运行时序时延仿真。 如图4所示为仿真工具软件运行时的界面: ■■■■———————■■●—黼
旧瓤州t
l-1Ⅲ 江“_ ‘哪”二二∞
…0,,¨1 P’kM一,…“E L㈣ ㈨,一…
yo“日
—h¨’。酬}
硫蔫■—鼍'州:
臣》:三糍i! M¨∞‘i 隧兰r“三剖{ l咄vm
J"趣“ 。h一”口o[』:
};
图4仿真工具ModelSim运行时的界面
14
基于FPGA/HDL的随机读写IZc串行总线接口电路设计
第二章12C串行总线简介
第二章12C串行总线简介
2.1串行总线简介
广义上说j计算机通信方式可以分为并行通信和串行通信,相应的通信总线被称 为并行总线(Parall

el Bus)和串行总线(Serial Bus)。并行通信在多条物理线路上同 时传输数据信号,因此具有速度快、实时性好的优点,但由于占用的通讯线多,不适 于小型化产品;串行总线,由于其在有限的几根信号线上传输数据,在远距离信息传 输中发挥着不可替代的作用。随着单片机的广泛应用,为适应各种系统对于外部扩展 及系统之间相互通信的要求,各种公司级串行接口应运而生,受到了广大用户的青睐。 常见的串行总线的结构如图5所示,主机通过适配器与串行总线相连,外设通过 外设控制器与总线相连。一个串行总线可以有一个或一个以上的主机,每个外设控制 器可以控制一个或多个外设。
●●◆ -外设控制器
网矧适配器除
旧I矧适配器除
●峥
外设控制器
由高南 I…’I I…一J
● ● ●

711以‘I
囱囱
●}◆ ‘外设控制器


ri墨]
I::=::I
图5串行总线系统结构示意图
如今,串行总线在数据传输速率方面有了明显进步,在短短数年内几乎全盘取代 了传统的并行技术,成为计算机总线的主导技术。串行总线主要包括RS.232C/422/485; 各种现场总线(Field Bus)技术,如CAN、SERCOS、Profibus、Lonworks、Interbus等; 以及目前流行的12C总线、通用串行总线(USB)、IEEEl394等f231。
15
基于FPGA/HDL的随机读写12C串行总线接口电路设计
第二章12c串行总线简介
2.2
12C总线发展及特点
1.]2C总线的概念【20l
Philips开发的12C(Inter
Integrated
Circuit,又称12C)总线是一种廉价、优质的
串行总线,适用于消费电子、通讯电子和工业电子等领域的低速器件。Fc总线定义了 两根线:串行数据线SDA和串行时钟线SCL。如图6是I℃总线系统的示意图。挂在12C
总线上的器件,无论是微处理器、LCD(Liquid
Crystal
Display)驱动器,还是存储器,
都有唯一的地址。在一个进程中,通讯的双方分别是数据发送端(Transmitter)和数 据接收端(Receiver),以及主12C(12C.Master)和从12C(12C.Slave)瞄】【231。 目前为止,Philips公司开发了包括超过150种CMOS和双极性兼容12C总线的I

C, 所有符合12C总线接口标准的的器件通过简单的双向双线总线,实现有效的IC之间控制 和通讯【2¨。
图6使用微控制器的12C总线配置举例
12C总线支持任何IC-F艺(NMOS、CMOS、双极性)。两线~串行数据(SDA) 和串行时钟(SCL)线在连接到总线的器件间传递信息。每个器件都有一个唯一的地 址识别(无论是微控制器、LCD驱动器、存储器或键盘接口),而且都可以作为一个 发送器或接收器(由器件的功能决定)。很明显,LCD驱动器只是一个接收器,而存 储器则既可以接收又可以发送数据。除了发送器和接收器外,器件在执行数据传输时 也可以被看作是主机或从机(见表2)。主机是初始化总线的数据传输并产生允许传输 的时钟信号的器件。此时,任何被寻址的器件都被认为是从机。
16
基于FPGA/HDL的随机读写12C串行总线接口电路设计
第二章12C串行总线简介
表2
IzC总线术语 术语 发送器 发送数据到总线盼器件 从总线接收数据的器件 初始化发送、产生时钟信号和终止发送的器件 被主机寻址的器件 同时有多于一个主机尝试控制总线,但不破坏报文 是一个在有多个主机同时尝试控制主线,但只允许其中一个控制总线并 使报文不被破坏的过程 两个或多个器件同步时钟信号的过程 描述
接收器 主机 从机 多主机 仲裁 同步
2.12C总线特征
12C总线是通过两条双向线(时钟线SCL和数据线SDA)在器件之间传递信息的。 SDA、SCL的输出级必须是开漏或者开集电极输出,并外接上拉电阻连接到正电源(如 图7),以实现“线与”功能。当总线空闲时,SDA、SCL均为高电平。总线上的每个器 件都有一个唯一的地址,既作为数据的发送者或接收者。Master用来控制总线,实现 数据传输,产生传输所需的时钟脉冲;被寻址的器件只能处于slave模式。 12C总线上数据的传输速率在标准模式下可达100kbit/s,在快速模式下可达 400kbit/s,在高速模式下可达3.4Mbit/s,连接到总线的接口数量由总线电容决定
(400pF)。
SDA‘皇·电丑Rp0审Rp’’uu
丫 丫
SCL
l一



CLK ●一

7,LK 一

!s删u巳 一OU一r1毫 !!s删2Je
|件1
DOUT。r-I- 2 l

D、广寸 IllIN寸一 DATA卅 IN—N 垮寸
暑件2


图7

12C标准模式器件和快速模式器件连接到12C总线
3.12C总线的一些优点
(1)在系统中增加或删除IC不会影响总线的其他电路;故障诊断和调试都很简单, 故障可被立即寻迹;极低的电流消耗:抗高噪声干扰;电源电压范围宽;工作的温度
17
基于FPGA/HDL的随机读写12C串行总线接口电路设计
第二章12C串行总线简介
范围广。 (2)由于简单的两线串行12C总线将互联减到最小,因此IC的管脚更少而且PCB的 线路也减少,结果使PCB更小和更便宜;完全完整的12C总线协议不需要地址译码器。 升级简易增加了系统设计的灵活性。
2.3
12C总线数据传输
1.数据的有效性
SDA线上的数据必须在时钟的高电平时保持稳定,在时钟信号SCL低电平时才能 切换。每一个SCL时钟脉冲传输一个数据位,如图8所示。
啦一一r—飞.一..r…、一 d岬l

I I
I由妇Ⅵ喇I■涮l
图8
ataMe stat炯;



I耐由协I
12C总线的位传输
2.起始和停止条件
在SCL线是高电平时,SDA线从高电平向低电平切换表示数据传送开始(S); 当SCL为高,SDA线由低电平向高电平切换表示停止条件(P)。起始和停止条件一般 由主机产生,总线在起始条件后被认为处于忙的状态。在停止条件的某段时间后,总 线被认为再次处于空闲状态,如图9所示。
SO^
一乱L[:::二]
I l
9Cl-
S”喂T∞a蝴譬帕P∞●●懒
图9起始和停止条件
扑.厂一、厂廿~瓯
I I 18
l门一一泓
12C总线上的数据传输
发送至I]SDA线上的每个字节必须为8位,每个字节后必须跟一个响应位,需要9 个时钟脉冲传送。SCL由主机产生,其传输过程为:首先主机产生起始位,然后传送
基于FPGA/HDL的随机读写12C串行总线接口电路设计
第二章12C串行总线简介
第一个字节。8位数据中首先传送的是数据的最高位MSB,最低位LSB为读写指示位, l表示主机读,0表示写,高7位地址可使主机寻址128个从器件),如图10所示。
姒1
!I
1田C
I I

:慷沿矗位先发送 l
从机发送响应位
/][]口匹
从机的响应信号1 3’:I
………。l


I l
戤强爪爪~风爪爪!

I IIII I一字节结束.从机中·谊动 I I

中听■务期闩靶Dl持低 I
’”1+’””7181
i爪瓜厂工、爪
L!rj响应位疆动时钟响应位疆动时钟L!J 图10

开始安重新开始结柬袁重新开始
12C总线的数据传输流程
从机收到后发响应位,主机收到响应位后接着发送第二个字节的数据。数据发送 完毕后产生结束位,数据传送结束。数据传送时,时钟SCL为低电平时SDA才允许 切换,SCL为高时SDA必须稳定,此时SDA的电平就是总线转送的数值。 在SCL为高电平时,SDA线由高到低切换表示起始位,SDA线由低到高切换表 示停止位。起始位和停止位由主机产生,在起始位产生后总线处于忙状态,停止位出 现并经过一定时间后总线进入空闲状态。发送器每发送一个字节后,接收器必须产生 一个响应位。响应位的驱动时钟由主机产生,接收器将SDA线拉低产生响应位,在响 应的时钟脉冲期间,发送器释放SDA线(高)。如果主机是接受器,接收最后一个 字节时,不产生响应位(响应位为1),以通知从机结束发送,否则响应位为O。当从 机不能响应从机地址(例如它正在执行一些实时函数,不能接收或发送)时,或响应 了从机地址,但是在传输了一段时间后不能接收更多的数据字节,此时从机可以通过 不产生响应位来通知主机终止当前的传输,于是主机产生一个停止位终止传输,或者 产生重复开始位开始新的传输。 SDA线上传送的数据必须为8位,每次传送可以发送的字节数量不受限制,如果 从机要完成一些其他功能(例如执行一个内部中断服务程序)后,才能接收或发送下 一个数据字节,那么从机可以使SCL维持低,迫使主机进入等待状态。从机准备好接 收或发送下一个数据字节后,释放SCL,数据传输继续。 SDA和SCL都是双向线路,使用时通过上拉电阻连接到电源上,当总线空闲时这 两条线路都是高电平,连接到总线的器件输出级必须是漏极开路或集电极开路,这样
19
基于FPGA/HDL的随机读写12C串行总线接口电路设计
第二章12C串行总线简介
总线才能执行线与的功能。 主机发完第一个字节后,数据传输方向的变化可能存在三种情况。1.传输方向不 变,如主机向从机写;2.传输方向改变,如主机从从机读数据;3.传输方向改变多次, 如主机对从机进行多次读写,如图11所示。
囫-主叫啵
(a)
:乏I::e
L数据+啦一 L数据+响应——_J
口从一).主
A=响应(SDALOW) 天=不响应{SDA H

相关主题
文本预览
相关文档 最新文档