带有48字节RAM的日历时钟芯片的设计_第1页
带有48字节RAM的日历时钟芯片的设计_第2页
带有48字节RAM的日历时钟芯片的设计_第3页
带有48字节RAM的日历时钟芯片的设计_第4页
带有48字节RAM的日历时钟芯片的设计_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、带有48字节RAM的日历时钟芯片的设计摘要:介绍了一种带有48字节RAM的日历时钟芯片的设计,该芯片具有振荡、分频、可编程的计时计数、定时闹响和中断输出等功能。该芯片基于Verilog HDL描述,采用模块化设计,可扩展性好;并利用Synopsys公司的VCS和DC工具分别对设计进行了成功的系统仿真和综合;同时还简单介绍了ASIC设计的整个流程。    关键词:Verilog HDL 系统仿真 逻辑综合 数字电子系统日历时钟芯片应用非常广泛,例如在IC卡电子门锁中,可利用日历时钟芯片的定时时钟计数功能,在IC卡内输入客人住房时的时间段,只有当时间段所包含的时间与日历时钟所记

2、录的时间一致时,方可开门,否则IC卡为无效卡。利用Synopsys公司提供的集成电路设计工具VCS和DC,设计了一个带有48字节RAM的日历时钟芯片,包括该芯片RTL级代码的编写、功能仿真和综合,达到了预期的目标。该芯片的具体性能指标是:工作电源电压为2.56V;日历时钟工作电源和RAM数据保持电源电压为16V;工作电流最大为50A;四年日历时钟,24或12小时格式,32.768kHz时基;48字节RAM,自动字节位置增量;具有可编程的闹钟、定时和中断功能。1 ASIC设计概述随着深亚微米技术的发展,数字集成电路的规模已经发展到上百万门。未来的二十多年里,一块ASIC芯片中将会达到上千万门的规

3、模。这样的电路规模,仿真和综合优化在开发过程中发函来发函重要。较复杂的数字电子系统设计往往采用自顶向下(Top-Down)的方法,设计流程可以分为以下几个主要的部分:系统级设计、设计实现、设计验证和流片封装。深亚微米工艺下的ASIC设计流程2如图1所示。图1    本文主要介绍芯片的系统级设计和所有逻辑设计,生成可供物理设计的经过验证的门级网表文件。2 芯片的系统级设计系统级设计是芯片设计的第一步,也是关键的一步。首先根据设计要求提出设计构想,然后再对这一构想进行细化。本设计把整个系统分成几大模块,即产生32.768kHz的振荡器(这个模块不用设计)、256分频器

4、、48字节RAM和位置寄存器。设计构想如图2所示。RAM中的000FH单元是一些带有特殊功能的寄存器,00H单元是控制芯片所有功能和操作的状态寄存器,通过设置状态寄存器,可以选择32.768kHz时钟模式或计数模式。在日历时钟模式中,1/128秒、秒、分、小时、年/日期、星期/月都是以BCD码分别存放在01H06H单元的寄存器中;而在事件计数模式中,则对输入到振荡器输入端(OSCI)的脉冲计数,事件计数器为6位BCD码。07H单元是能存储最大数为99天的定时器。08H是控制定闹、定时和中断输出功能的闹钟控制寄存器。09H0FH单元用于储存用户信息。对于这样的设计,传统的方法是使用中小规模集成电

5、路来构成,本文则用Verilog HDL描述来实现。整个芯片采用模块化设计方式和Top-Down设计方法,根据寄存器的不同划分成模块,然后用测试程序TestBench对顶层模块进行仿真;仿真通过后利用厂家提供的工艺库及时序约束脚本文件对其进行综合;综合通过后生成门级网表文件,然后再用厂家提供的仿真库对门级网表进行综合后仿真。本文设计用到的工艺库是台湾旺宏公司(Macronix,MXIC)提供的基本单元库(slow.db和fast.db)、基本符号单元库(slow.sdb)和用于综合后仿真的库文件仿真库(models.v)。    这是一个同步时序电路的设计,所以保

6、证正确的时序是设计的关键,本设计中有四个时钟:(1)系统时钟clksys,是外部微控制器提供的时钟信号,用作寄存器读、写时钟信号;(2)测试时钟clktest,是整个芯片的测试时钟信号,一般限于厂家使用。(3)时基时钟clk32,定时方式时,外部石英晶振提供的32.768kHz振荡信号经过256分频后得到时钟信号(evt128),作为RAM前16字节特殊寄存器的同步时钟信号。(4)计数时钟clkevt,计数模式时的外部计数脉冲信号。图3是日历时钟顶层模块端口示意图,读选通信号w、写选通信号r、片选信号csn和RAM位置控制信号addr5:0是由外部微处理器提供的。当写信号w为真时,将输入数据d

7、atin7:0写入存储器被选中的位置;当读信号r为真时,将从存储器被选中的位置中输出数据datu7:0。当满足下面两个条件之一时,中断请求信号intz输出低电平:00H单元中的第0位为1,并且08H单元的第3位为1。由于篇幅有限,在这里只写出顶层模块rtc的部分设计程序,具体如下:timescale 10ns/10ps /模拟时间定标;module rtc (clktest,clksys,clk32,clkevt,csn,rstz,w,r, addr,datin, datu, intz);input clktest,clkysy,clk32,clkevt,csn,rstz,w,r; /输入输出

8、端口说话input7:0 datin;input5:0 addr;output7:0 datu;output intz;reg7:0 datu; /设定变量的数据结构;ctl_status c0 ( clksys,evt128,rstz,w,cs00,); /调用00H单元子模块;sec128 c1 (clksys, clktest, evt128, rstz,); /调用01H单元子模块;sec c2 (clksys, evt128, clktest,rstz,); /调用02H单元子模块;int c20 ( timer_flag,alarm_flag,); /调用产生中断模块;always

9、 ( addr or stop_soft or ) begin if(cs & r) begin /根据控制位置信号而输出RAM中各寄存器的数据;case (addr)0:datu=stop_soft,hold_flag,func_mode,mask_flag,alarm_en,alarm_flag,time_flag;1:datu=data_latch15:8;47:datu=data_ram255:248;default:datu=8h00;endcaseendelsedatu=8h00;endendmodule在顶层模块中调用了根据不同功能而编写的20个子模块,如ctl_stat

10、us.v、sec.v和ram.v等。其中RAM存储器的1F2FH单元是模拟电路,要用全定制的方法生成。而在数字集成电路设计中,仿真时经常要用到存储器的行为模型,这里给出的行为模型ram.v用于仿真。3 利用EDA工具进行系统仿真设计人员利用先进的EDA工具作为测试平台,以验证数字电子系统设计模块的逻辑功能和时序功能。虽然不同的EDA工具提供的平台不同,但都可以对被测试对象加载激励信号,并通过波形输出、文件记录输出等方式观察和比较仿真结果。加载激励信号需要设计人员设计测试程序(TestBench)3,对于较大规模的系统设计,测试程序的设计有时比本身的程序设计还要复杂。在本文的设计中,首先对每一个

11、子模块设计一个测试程序,单独进行逻辑仿真,然后再设计一个测试程序对整个设计进行逻辑仿真。由于篇幅有限,在这里仅写出sec.v的部分测试程序,具体如下:timescale 10ns/10psmodule sec_test;reg clksys,evt128,clktest,carry_sec128,rstz,datin,datoout,w;reg7:0datin,datout;reg1:0func_mode;sec c2 (clksys,evt128,clktest,carry_sec128,rstz,datin, datout,func_mode,w,);always #10 clksys =

12、 clksys;always #30 evt128 = evt128;always #50 clktest = clktest;always #80 carry_sec128 = carry_sec128; /产生输入激励;initialbeginrstz = 0;#90 rstz = 1;end /产生复位信号initialbeginw = 0;#100 w = 1;#5 w = 0;#1100 w = 1;#5 w = 0;end /产生写信号initialbeginfunc_mode= 0 ;#1000 func_mode = 1;end /功能模式的选择;initialbegindat

13、in= 0 ;#20 datin = 00100101h;#1000 datin = 00010010;end /输入数据;always (func_mode or datin of datout) display ("At time %t,func_mode=%b,datin is %b%b,datout is %b",time,func_mode,datin,datout); /输出模拟结果。利用Synopsys公司的仿真工具VCS进行仿真,无论在功能上还是在时序上,都完全符合要求。4 利用EDA工具进行综合和优化综合是利用芯片制造商提供的基于电路单元(综合库)实现用硬

14、件描述语言描述的电路功能。现在许多优秀的综合工具都能借助现有的综合库将Verilog HDL源代码进行综合,转化成门级电路图,并且可以根据设计者施加的约束条件对电路进行优化,产生面积或者速度达到最优的结构,并生成相应的逻辑网表以供后端设计使用。综合时要进行延时计算和设计规则检查,需要设置的相关内容主要包括:操作环境、导线负载模型、设计约束、设计规则约束。通常情况,设计者要先编辑一个包括这些设置的脚本文件(例如本文编辑的脚本文件rtc.tcl),启动逻辑综合工具DC后就可,执行文件中的各条指令了。综合的过程如图4所示。下面利用日历时钟实例简单介绍这一过程。(1)建立设计环境台湾旺宏公司的0.35

15、m CMOS标准单元综合库slow.db和fast.db包含了与非、或非、非门等基本逻辑单元,还有选择器、与或非、或与非等较复杂的组合逻辑以及DFF(D触发器)等时序逻辑单元。利用该库可以这样来建立环境:set target_library slow.db fast.dbset link_library *slow.db fast.dbset search_path "/home/tools/synopsys/library"(2)读入HDL描述如果读入多个模块,首先应该读入的是顶层模块。要将当前的设计设置为顶层模块,可以这样来设置:read_verilog "h

16、ome/design/rtl/rtc.v"read_verilog "home/design/rtl/see.v"current_design rtc(3)定义环境变量环境变量输出网表和输出报告等路径设置可以这样来定义:netlist_path = "home/design/netlist"report_path = "home/design/report"(4)定义性能约束、时序约束和面积约束性能约束主要包括创建时钟、输入延迟和输出延迟等;综合的目标是得到最小的面积。可以这样来设置:creat_clock-period 7

17、0-name my_clock get_ports clksysset ex_clkremove_from_collectionall_inputsget_ports clksysset_input_delay 4 -clock my_clock ex_clkset_output_delay 3 -clock my_clock all_outputsset_max_area 1(5)编译用compile命令进行编译即可。    (6)写门级网表综合后的门级网表可以用edif文件形式保存,也可以用.V文件形式存放,采用如下命令:write-format verilog-hierarchy-output $netlist_path/rtc.vg此外,还需要保存延时信息,以便综合后仿真,延时信息一般放在.sdf文件中,采用如下命令:write_sdf netlist_path/rtc.sdf-version 1.4(7)给出报告可以报告综合出的面积、时序信息、违反约束路径以及单元的个数等,并存放到定义的目录文件中,下面举几个例子:report_area >$report_path/area.rptreport_timing &

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论