




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七讲 Top-Down的设计方法,7.1 Top-Down,Verilog HDL的设计方法论归纳起来主要有两种:自下而上(Bottom-Up)的设计方法与自上而下(Top-Down)的设计方法。另外,还可以根据实际情况,利用这两种方法的组合进行综合设计,即综合设计方法。,Top-Down设计,即自顶向下的设计 : 将设计分为几个不同的层次:系统级、功能级、门级、开关级等,按照自上而下的顺序,在不同的层次上,对系统进行设计与仿真。 在Top-Down的设计中,由系统用户对整个系统进行方案设计和功能划分,把系统划分为基本单元,然后再把每个基本单元划分为下一层次的基本单元,直到可以直接用元件库中的元件来实现为止。,Top-Down设计方式示意图:,如图所示,在Top-Down的设计过程中,需要有EDA工具的支持,有些步骤EDA工具可以自动完成,比如综合等,有些步骤EDA工具为用户提供了操作平台。,Top-Down设计方法一般采用HDL语言,具有以下一些优点:,1): 在设计周期中开始就做好了系统分析。 2): 由于设计的主要仿真和调试过程是在高层次完 成的,所以能够在早期发现结构设计上的错误,避免设计工作的浪费,同时减少了逻辑仿真的工作量 。 3):自上而下的设计方法方便了从系统划分和管理整个项目,使得几十万门甚至几百万门规模的复杂数字电路的设计成为可能。并可减少设计人员,避免不必要的重复设计,提高了设计的一次成功率。,自上而下的设计方法有以下缺点: 1): 因采用的综合工具不一样,得到的最小单元不标准。 2): 制造成本高。,频率计设计示例,频率计是测量信号频率常用的仪器,其工作原理是在单位时间内对信号进行计数,从而测量出信号的频率,现设计一个6位频率计,其基准时钟为1MHz,要求频率测量范围为1Hz到1MHz。,根据频率计的工作原理,其组成部分如下:,(1)1KHz时钟发生器 (2)闸门电路 (3)计数器 (4)显示电路(显示电路又可以分割为计数值锁存器、扫描计数器、24选4多路开关、BCD-七段译码器、3-6译码器),(1)1KHz时钟发生器,module counter1K( clk1k, mclk); output clk1k; input mclk; reg 8:0 count; reg out; always ( posedge mclk) begin if( count 9o499) begin clk1k=!clk1k; count=4d0; end else count=count+1; end endmodule,(2) 闸门电路,module GateGen(load,clr,clk1k); output load,clr; input clk; reg 9:0 count; always (posedge clk1k) begin if(count=0) begin count=count+1; load=0; clr=1; end,else if(count=1000) begin count=10d0; load =1; clr=0; end else begin count=count+1; load=0; clr=0; end end endmodule,(3)计数器,Module counter(result,load,clr, signal); output load,clr; output 23:0 result, input signal; reg 23:0 count; reg 23:0 result; /计数 always (posedge clr or posedge signal) begin if(clr) count=24h000000; else if(count=24d999999) count=24h000000; else if(count19:0=20h99999) begin count19:0=0; count23:20=count23:20+1; end,else if(count15:0=16h9999) begin count15:0=0; count23:16=count23:16+1; end else if(count11:0=12h999) begin count11:0=0; count23:12=count23:12+1; end else if(count7:0=8h99) begin count7:0=0; count23:8=count23:8+1; end,else if(count3:0=4h9) begin countt3:0=0; count23:4=count23:4+1; end else count=count+1; end /输出计数值 always (posedge clr or posedge load) begin if(clr) result=24h0000; else result=count; end endmodule,(4)显示电路,module disled(seg7,segsel,bcdin,clk1k); input clk1ms; input 23:0 bcdin; output 7:0 seg7n; output 5:0 segsel; endmodule,(5)顶层文件,module top(ledseg7,ledsel, signal,mclk) input sin,mclk; /输入信号和1MHz时钟输入 output 7:0 ledseg7; output 5:0 ledsel; wire clk1k,clr,load; wire 23:0 result; wire 7:0 seg7; wire 5:0 segsel;,/1KHz时钟分频器 counter1K U1( .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); endmodule,7.2 存储器建模,若干个相同宽度的向量构成数组(array),也就是存储器。 例如: reg7:0 mymem1023:0; 上面的语句定义了一个1024个字节,每个字节宽度为8位的存储器。 再如: reg3:0 Amem63:0 /Amem为64个4位寄存器的存储器 reg Bmen5:1 /Bmem为5个1位寄存器的存储器,也可以用parameter参数定义存储器的尺寸,比如: parameter wordwidth=8,memsize=1024; regwordwidth-1:0 mymemmemsize-1:0 上面的语句定义了一个宽度为8位,1024个存储单元的存储器。该存储器的名字是mymem,若对该存储器中的某一单元赋值的话,可采用如下方式: mymem8=1; /mymem存储器中的第8个单元被赋值为1 mymem25=65; /mymem存储器中的第25个单元被赋值为65 不允许对存储器进行位选择和域选择。不过,可以首先将存储器的值赋给寄存器,然后对寄存器进行位选择和域选择。,为存储器赋值的另一种方法是使用系统任务(仅限于电路仿真中使用): $readmemb(加载二进制值) $readmemh(加载十六进制值) 这些系统任务从指定的文本中读取数据并加载到存储器。文本文件必须包含相应的二进制数或者十六进制数。,存储器建模必须注意以下两个方面的问题:,1)声明存储器容量的大小。 2)明确对存储器访问操作的权限。,例如:指出可以对存储器做以下哪几种操作: 只读 读写 同步读写 多次读,同时进行一次写 多次同步读写,同时提供一些方法保证一致性,例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 (addr or read_en_) if(!read_en_) read_data=memaddr; endmodule,例2:RAM建模,timescale 1ns/1ns module 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) memoryaddr=data; endmodule,RAM模型跟ROM模型相比:,它必须具有读写能力; 进行读写时通常使用相同的数据总线; 需要新技术来处理双向总线; 当读信号无效时,RAM模型与总线脱离,如果此时写 信号也无效,总线无驱动源,则总线进入高阻状态, 这就避免了RAM中的读写竞争。 上例的 RAM 模块是可综合的,但综合出来是一大堆寄存器,占比较大的面积,经济上不太合算。,7.3 双向口建模,使用inout关键字声明端口为双向口。 inout 7:0 databus; 使用双向口必需遵循下面的规则: inout口只能声明为网络连接类型, 不允许把它声明为寄存器类型。(所以仿真器能确定多个驱动源的最终值。) 在设计中,每次只能从一个方向来驱动inout口。,例如:当使用总线读RAM中的数据时,如果同时又向RAM模型的双向数据总线写数据,就会产生逻辑竞争,导致总线数据无法确定。所以必须为inout口设计控制逻辑,只有这样才能保证正确的操作。 使用双向口时还要注意: 声明一个inout口,可以用来输入或输出数据。inout口默认为网络连接类型。不允许在过程块(initial 或always块)中对网络连接类型的数据进行过程赋值;但可以在过程块外把一个寄存器数据类型通过连续赋值语句赋给它(inout口),或者把它与用户定义的源语(UDP)相连。 必须为inout口设计控制逻辑,用来保证正确的操作。当把inout口作为输入口时,必须通过控制逻辑禁止输出到inout口。,例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); /结构模块逻辑 endmodule,例2:使用连续赋值为双向口建模,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; assign bus_b=en_a_b? bus_a:bz; assign bus_a=en_b_a? bus_b:bz; /结构模块逻辑 endmodule,例3: 存储器的端口建模,module ram_cell(databus,rd.wr); inout databus; input rd,wr; reg datareg; assign databus=rd? datareg:bz; always (negedge wr) datareg=databus; endmodule 该例中存储单元在wr的下降沿到达时存入数据。上页模块在 wr处于高电平时,通过数据总线写入数据,但必须保证wr的高电平维持时间长于数据的写入时间。在rd处于高电平时,上述存储单元通过数据总线读出数据。由于此模型为单口存储模型,因此wr变低电平时,rd不能同时为高电平,否则就无法确定存储器的读出/写入的结果。,7.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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 16.1生命的诞生说课稿-2024-2025学年苏教版生物八年级上册
- 2024-2025学年高中语文 第五课 第4节 说“一”不“二”-避免歧义说课稿2 新人教版选修《语言文字应用》
- 2025年中考数学试题分类汇编:一次函数(12大考点43题) (第1期)原卷版
- 2025年初中生物学教师招聘考试测试题及答案
- 2025年中考地理试题分类汇编:居民与文化、发展与合作(第1期)原卷版
- 江苏省江阴市成化高级中学高中地理 5.2 产业转移 以东亚为例说课稿1 新人教版必修3
- 沟通的艺术-好好说话(说课稿)2025-2026学年初三下学期教育主题班会
- 劳动项目三 发绿豆芽教学设计-2025-2026学年小学劳动六年级下册人教版《劳动教育》
- 2025年美发师技师职业技能考试题库(含答案)
- 叉车科目一模拟考试题及答案
- 罐脚手架施工方案
- 团队协作重要性课件
- 初中生自我介绍范文给老师
- GB/T 702-2017热轧钢棒尺寸、外形、重量及允许偏差
- 2023年浙江宁波自考专科07038信息技术与物流管理实复习资料
- GB/T 18970-2003饲料添加剂10%β,β-胡萝卜-4,4-二酮(10%斑蝥黄)
- 履带式管道机器人方案
- 市级课题结题报告-“双减”背景下小学数学课堂开展学生“项目式学习”的实践研究(优秀等次)
- 预科化学(化学实验基本方法)课件
- 不锈钢棚施工方案
- 材料科学基础(上海交大)第1章原子结构与键合课件
评论
0/150
提交评论