《opDown设计方法》PPT课件_第1页
《opDown设计方法》PPT课件_第2页
《opDown设计方法》PPT课件_第3页
《opDown设计方法》PPT课件_第4页
《opDown设计方法》PPT课件_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、第七讲 Top-Down的设计方法 7.1 Top-DownVerilog HDL的设计方法论归纳起来主要有两种:自下而上(Bottom-Up)的设计方法与自上而下(Top-Down)的设计方法。另外,还可以根据实际情况,利用这两种方法的组合进行综合设计,即综合设计方法。1精选PPTTop-Down设计,即自顶向下的设计 : 将设计分为几个不同的层次:系统级、功能级、门级、开关级等,按照自上而下的顺序,在不同的层次上,对系统进行设计与仿真。 在Top-Down的设计中,由系统用户对整个系统进行方案设计和功能划分,把系统划分为基本单元,然后再把每个基本单元划分为下一层次的基本单元,直到可以直接用

2、元件库中的元件来实现为止。 2精选PPTTop-Down设计方式示意图: 系统级与功能级的设计功能仿真综合门级网表时序仿真EDA工具的支持 如图所示,在Top-Down的设计过程中,需要有EDA工具的支持,有些步骤EDA工具可以自动完成,比如综合等,有些步骤EDA工具为用户提供了操作平台。3精选PPTTop-Down设计方法一般采用HDL语言,具有以下一些优点: 1): 在设计周期中开始就做好了系统分析。2): 由于设计的主要仿真和调试过程是在高层次完 成的,所以能够在早期发现结构设计上的错误,避免设计工作的浪费,同时减少了逻辑仿真的工作量。3):自上而下的设计方法方便了从系统划分和管理整个项

3、目,使得几十万门甚至几百万门规模的复杂数字电路的设计成为可能。并可减少设计人员,避免不必要的重复设计,提高了设计的一次成功率。4精选PPT自上而下的设计方法有以下缺点:1): 因采用的综合工具不一样,得到的最小单元不标准。2): 制造成本高。5精选PPT频率计设计示例频率计是测量信号频率常用的仪器,其工作原理是在单位时间内对信号进行计数,从而测量出信号的频率,现设计一个6位频率计,其基准时钟为1MHz,要求频率测量范围为1Hz到1MHz。 6精选PPT根据频率计的工作原理,其组成部分如下: (1)1KHz时钟发生器(2)闸门电路(3)计数器(4)显示电路(显示电路又可以分割为计数值锁存器、扫描

4、计数器、24选4多路开关、BCD-七段译码器、3-6译码器)7精选PPT(1)1KHz时钟发生器 module counter1K( clk1k, mclk); output clk1k; input mclk; reg 8:0 count; reg out; always ( posedge mclk)beginif( count 9o499)beginclk1k=!clk1k;count=4d0;endelsecount=count+1;end endmodule 8精选PPT(2) 闸门电路 module GateGen(load,clr,clk1k); output load,clr;

5、 input clk; reg 9:0 count; always(posedge clk1k)beginif(count=0)begincount=count+1;load=0;clr=1;endelse if(count=1000)begincount=10d0;load =1;clr=0;endelsebegincount=count+1;load=0;clr=0;endendendmodule 9精选PPT(3)计数器 Module counter(result,load,clr, signal); output load,clr; output 23:0 result, input

6、signal; reg 23:0 count; reg 23:0 result; /计数always(posedge clr or posedge signal)beginif(clr) count=24h000000; else if(count=24d999999) count=24h000000; else if(count19:0=20h99999)begincount19:0=0;count23:20=count23:20+1;end10精选PPTelse if(count15:0=16h9999)begincount15:0=0;count23:16=count23:16+1;en

7、delse if(count11:0=12h999)begincount11:0=0;count23:12=count23:12+1;endelse if(count7:0=8h99)begincount7:0=0;count23:8=count23:8+1;end11精选PPTelse if(count3:0=4h9)begincountt3:0=0;count23:4=count23:4+1;endelse count=count+1;end/输出计数值always(posedge clr or posedge load)beginif(clr)result=24h0000;elseres

8、ult=count;endendmodule 12精选PPT(4)显示电路module disled(seg7,segsel,bcdin,clk1k);inputclk1ms;input23:0bcdin;output7:0seg7n;output5:0segsel;endmodule13精选PPT(5)顶层文件moduletop(ledseg7,ledsel, signal,mclk)inputsin,mclk;/输入信号和1MHz时钟输入output7:0ledseg7;output5:0ledsel;wireclk1k,clr,load;wire23:0result;wire7:0seg

9、7;wire5:0segsel;14精选PPT/1KHz时钟分频器counter1KU1( .clk1k(clk1k), .mclk(mclk);/闸门电路GateGen U2(.load(load),.clr(clr),.clk1k(clk1k);/测量单元Counter U3(.result(result),.load(load),.clr(clr), .signal(signal);/LED显示Disled U4(.seg7(ledseg7),.segsel(ledsel),.bcdin(result),.clk1k(clk1K);endmodule15精选PPT7.2 存储器建模若干个

10、相同宽度的向量构成数组(array),也就是存储器。 例如:reg7:0 mymem1023:0; 上面的语句定义了一个1024个字节,每个字节宽度为8位的存储器。再如: reg3:0 Amem63:0 /Amem为64个4位寄存器的存储器 reg Bmen5:1 /Bmem为5个1位寄存器的存储器16精选PPT也可以用parameter参数定义存储器的尺寸,比如: parameter wordwidth=8,memsize=1024; regwordwidth-1:0 mymemmemsize-1:0上面的语句定义了一个宽度为8位,1024个存储单元的存储器。该存储器的名字是mymem,若对

11、该存储器中的某一单元赋值的话,可采用如下方式: mymem8=1; /mymem存储器中的第8个单元被赋值为1 mymem25=65; /mymem存储器中的第25个单元被赋值为65不允许对存储器进行位选择和域选择。不过,可以首先将存储器的值赋给寄存器,然后对寄存器进行位选择和域选择。17精选PPT为存储器赋值的另一种方法是使用系统任务(仅限于电路仿真中使用): $readmemb(加载二进制值) $readmemh(加载十六进制值) 这些系统任务从指定的文本中读取数据并加载到存储器。文本文件必须包含相应的二进制数或者十六进制数。18精选PPT 存储器建模必须注意以下两个方面的问题: 1)声明

12、存储器容量的大小。2)明确对存储器访问操作的权限。19精选PPT例如:指出可以对存储器做以下哪几种操作: 只读 读写 同步读写 多次读,同时进行一次写 多次同步读写,同时提供一些方法保证一致性20精选PPT例1:ROM建模 timescale 1ns/10ps module myrom(read_data,addr,read_en_);input read_en_;input 3:0 addr; output 3:0 read_data;reg 3:0 read_data;reg 3:0 mem 0:15;initial $readmemb(“my_rom_data”,mem);always

13、(addr or read_en_) if(!read_en_) read_data=memaddr;endmodule 21精选PPT例2:RAM建模 timescale 1ns/1nsmodule mymem(data,addr,read,write); inout 3:0 data; inout 3:0 addr; input read, write; reg 3:0 memory 0:15; /4 bits, 16 words/从存储器读出到总线上 assign data=read? memoryaddr:4bz;/从总线写入存储器 always (posedge write) mem

14、oryaddr=data;endmodule22精选PPTRAM模型跟ROM模型相比: 它必须具有读写能力; 进行读写时通常使用相同的数据总线; 需要新技术来处理双向总线;当读信号无效时,RAM模型与总线脱离,如果此时写 信号也无效,总线无驱动源,则总线进入高阻状态, 这就避免了RAM中的读写竞争。上例的 RAM 模块是可综合的,但综合出来是一大堆寄存器,占比较大的面积,经济上不太合算。23精选PPT7.3 双向口建模 使用inout关键字声明端口为双向口。 inout 7:0 databus; 使用双向口必需遵循下面的规则:inout口只能声明为网络连接类型, 不允许把它声明为寄存器类型。(

15、所以仿真器能确定多个驱动源的最终值。)在设计中,每次只能从一个方向来驱动inout口。24精选PPT 例如:当使用总线读RAM中的数据时,如果同时又向RAM模型的双向数据总线写数据,就会产生逻辑竞争,导致总线数据无法确定。所以必须为inout口设计控制逻辑,只有这样才能保证正确的操作。 使用双向口时还要注意:声明一个inout口,可以用来输入或输出数据。inout口默认为网络连接类型。不允许在过程块(initial 或always块)中对网络连接类型的数据进行过程赋值;但可以在过程块外把一个寄存器数据类型通过连续赋值语句赋给它(inout口),或者把它与用户定义的源语(UDP)相连。必须为in

16、out口设计控制逻辑,用来保证正确的操作。当把inout口作为输入口时,必须通过控制逻辑禁止输出到inout口。 25精选PPT例1:使用Verilog中的基本元件(bufif1)为双向口建模 module bus_xcvr (bus_a,bus_b,en_a_b,en_b_a);inout bus_a,bus_b;input en_a_b,en_b_a; bufifl b1(bus_b,bus_a,en_a_b); bufifl b2(bus_a,bus_b,en_b_a); /结构模块逻辑endmodule26精选PPT例2:使用连续赋值为双向口建模 module bus_xcvr (bu

17、s_a,bus_b,en_a_b,en_b_a);inout bus_a,bus_b;input en_a_b,en_b_a; assign bus_b=en_a_b? bus_a:bz; assign bus_a=en_b_a? bus_b:bz; /结构模块逻辑endmodule27精选PPT例3: 存储器的端口建模 module ram_cell(databus,rd.wr); inout databus; input rd,wr; reg datareg; assign databus=rd? datareg:bz; always (negedge wr) datareg=databu

18、s; endmodule该例中存储单元在wr的下降沿到达时存入数据。上页模块在 wr处于高电平时,通过数据总线写入数据,但必须保证wr的高电平维持时间长于数据的写入时间。在rd处于高电平时,上述存储单元通过数据总线读出数据。由于此模型为单口存储模型,因此wr变低电平时,rd不能同时为高电平,否则就无法确定存储器的读出/写入的结果。28精选PPT7.4 IP 的使用IP核是具有知识产权(IntellectualProperty)的集成电路芯核的简称,其作用是把一组拥有知识产权的电路设计集合在一起,构成芯片的基本单位,以供设计时搭积木之用。其实可以把IP理解为一颗ASIC,以前是ASIC做好以后供人家在PCB上使用,现在是IP做好以后让人家集成在更大的芯片里。 IP核是一段具有特定电路功能的硬件描述语言程序,该程序与集成电路工艺无关,可以移植到不同的半导体工艺中去生产集成电路芯片。利用IP核设计电子系统,引用方便,修改基本元件的功能容易。具有复杂功能和商业价值的IP核一般具有知识产权,尽管IP核的市场活动还不规范,但是仍有许多集成电路设计公司从

温馨提示

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

评论

0/150

提交评论