《数字系统设计的基础知识.ppt》由会员分享,可在线阅读,更多相关《数字系统设计的基础知识.ppt(54页珍藏版)》请在三一办公上搜索。
1、数字逻辑设计基础器件和概念基于quartus的设计输入基于quartus的功能仿真本讲要点和实验要求,第二讲 数字系统设计的基础知识1,主要内容:,数字逻辑设计基础器件和概念,1 单元与层次 在数字逻辑设计中,一般采用基本构造模块来组成数字系统。通常将这种基本构造模块(无论简单还是复杂)称作单元(cell)。基本单元是系统的基本构成模块。通过对基本单元进行组合,可以构成较大、较复杂的A、B、C单元,而A、B、C单元进一步用于构成更大的X单元和Y单元。这种设计方式可称作层次设计方法。,图 2-1 层次设计的级别,2 基本逻辑电路 任何复杂的数字系统从原理上而言,最终都可以分解成基本的逻辑门和存储
2、器元件。1)逻辑门 逻辑门是设计数字系统的基础,最基本的逻辑门有与门、或门、非门三种,由此导出的逻辑门有与非门、或非门、异或门等,如与非门是由与门和非门结合起来的逻辑门,或非门是由或门和非门结合起来的逻辑门。在输入输出和总线设计中还常用到三态门。常用逻辑门的逻辑符号及真值表如图所示。,图 2-2 常用门的表示,逻辑门相关基本概念,四值逻辑:逻辑值1、逻辑值0、未知值X、高阻值Z。逻辑器件延时:0=1 上升延时,1=0 下降延时,0、1、x=Z 关断延时。惯性延时。逻辑路径延时:逻辑器件间互连线的延时。传输延时。逻辑器件负载模型:CMOS逻辑器件的负载可等效为RC电路,负载越多,电容越大。逻辑器
3、件扇出:逻辑器件输出连接的负载数目为扇出。如一个非门的输出连接了三个逻辑门的输入,则称该非门的扇出为3。扇出越大,负载越大,等效传输延时越大。,2)触发器 我们把具有存储记忆一位二值信号功能的基本单元电路称为触发器。根据触发器电路结构和功能的不同,可以分为RS触发器、JK触发器、D触发器、T触发器和T触发器等。在目前的数字系统同步电路设计中,一般只使用D触发器。在异步电路设计中用到RS触发器和其它触发器。,(a)符号;(b)功能特点;(c)建立、保持时间建立时间在时钟跳变前数据必须保持稳定(无跳变)的时间。保持时间在时钟跳变后数据必须保持稳定的时间。,D触发器,D触发器的亚稳态(metasta
4、bility)概念,当某个异步信号被送入一个同步触发器时,就可能发生亚稳态现象。如图所示,当输入D与时钟CLK1同时在亚稳态时间窗内翻转时,D触发器的输出可能出现一种不是1,也不是0的不确定中间状态,并可能维持一段时间,称亚稳态。,亚稳态时间窗,D触发器的亚稳态特性,亚稳态是触发器的固有特性,不可能消除,只能尽量减小其的持续时间。一般器件供应商会提供MTBF(mean time between failures)和tMET数据供设计参考。MTBF:两次亚稳态出现的统计平均间隔时间。tMET:亚稳态持续的统计平均时间。祥见AN042:ALTERA器件的亚稳态问题。设计中尽量避免出现亚稳态问题,采
5、用同步设计是目前最好的办法。在异步电路与同步电路接口处常用同步器处理,在异步电路设计中要专门处理。,D触发器的亚稳态参数,MTBF:两次亚稳态出现的统计平均间隔时间,tMET:亚稳态持续的统计平均时间。,常用异步信号与同步电路接口的同步器电路,用门级结构描述D触发器,modulemy_dff(data,clock,clear,q,qb);inputdata,clock,clear;/输入端口outputq,qb;/输出端口nand nd1(a,data,clock,clear),/模块调用 nd2(b,ndata,clock),nd4(d,c,b,clear),nd5(e,c,nclock),
6、nd6(f,d,nclock),nd8(qb,q,f,clear);nand nd3(c,a,d),nd7(q,e,qb);not iv1(ndata,data),iv2(nclock,clock);endmodule,Verilog的D触发器门级结构描述,模块,按位置连接信号线,wire类型可以隐含说明,Verilog的D触发器功能(行为)描述,modulemy_dff(data,clock,clear,q,qb);inputdata,clock,clear;outputq,qb;/wire变量类型reg q;/reg变量类型always(negedge clear or posedge c
7、lock)begin if(!clear)q=1b0;/非阻塞赋值 else q=data;end assign qb=q;/并行赋值语句endmodule,Always块语句,事件控制操作符,上升沿事件,If 顺序语句,异步复位,Verilog描述的抽象级别,Verilog 语言本身提供了各种层次抽象的表述能力,可以在不同层次上描述同一个电路系统。行为级:系统功能和算法的Verilog描述,与电路实现结构无关。RTL级:基于寄存器和其间组合逻辑功能的Verilog描述,是行为描述的低级形式。RTL级描述是当前可综合设计的主流。门级:逻辑结构的Verilog描述。开关级:具体的晶体管物理器件的
8、描述。,由D触发器构成高一级的模块,复位,时钟,Verilog的结构描述,include“my_dff.v”/包含文件modulehardreg(d,clk,clrb,q);inputclk,clrb;input3:0d;/3:0 定义矢量信号output3:0q;my_dfff1(.data(d0),.clock(clk),.clear(clrb),.q(q0),f2(.data(d1),.clock(clk),.clear(clrb),.q(q1),f3(.data(d2),.clock(clk),.clear(clrb),.q(q2),f4(.data(d3),.clock(clk),.
9、clear(clrb),.q(q3);endmodule,按变量名连接,Verilog的功能描述,modulehardreg(d,clk,clrb,q);inputclk,clrb;input3:0d;output3:0q;reg3:0 q;/reg变量类型always(negedge clrb or posedge clk)begin if(!clrb)q=4b0000;else q=d;end endmodule,异步复位,3)存储器,数字系统的应用中采用不同类型的存储元件。有随机存取存储器(RAM)。大多数的读/写存储器在掉电时会丢失其内容。RAM时序图如下:另一类存储器称为只读存储器(
10、ROM)。,简单 ROM 的verilog描述,timescale 1ns/100ps 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,my_rom_data文件 0000 0101 1100 0011 1
11、101 0010 0011 1111 1000 1001 1000 0001 1101 1010 0001 1101,ROM的数据存储在另外的一个独立的文件中,仿真时间精度,Initial块语句,系统函数,向量组定义,简单 RAM 的verilog描述,timescale 1ns/100psmodule 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#5 data=(read)?mem
12、oryaddr:4bz;/从总线写入存储器 always(posedge write)memoryaddr=data;endmodule,四值逻辑:1:1 逻辑值0:0 逻辑值X:未知值Z:高阻值,右端信号延时5ns后给data赋值,可编程逻辑器件设计流程,本讲主要内容,基于Quartus2 的电路设计简介,新建项目指南,新建项目加入设计文件,新建项目检查结果输出,其他全部选 next 到:,设计输入,可以有多种设计输入方法输入设计文件。图表模块设计输入:是自顶向下顶层设计的主要方法。原理图编辑输入:是传统的自底向上设计输入方法,可利用LPM和宏功能模块来加速设计输入。文本编辑器:用于HDL语
13、言输入(AHDL,VHDL,Verilog)。内存编辑器:用于ROM的数据设置(Hex,Mif)。第三方工具:可用输入格式 EDIF、HDL、VQM。,设计输入文件,图表模块和原理图编辑器,既可以编辑图表模块,又可以编辑原理图图表模块输入设计流程:,产生一个新的顶层模块设计文件画出各个子模块或输入设计单元符号设置各子模块的输入接口和参数信息连接各个子模块或输入设计单元(利用管道、单连线或总线等)保存设计,文件的后缀名为.bdf 从顶层图表模块可以转化成Verilog/VHDL文件子模块可以进一步设置是用下一级图形模块实现或用HDL语言实现。,模块编辑器 产生一个新的文件,模块编辑器-设计模块,
14、模块编辑器-设计模块,模块编辑器-“智能”连接,模块编辑器-“智能”连接,模块编辑器-产生设计文件,端口名不同,可用映射设置说明,模块编辑器-顶层设计实例 my_design,my_design设计顶层,模块mux2由原理图实现,模块my_dff由verilog语言实现,原理图编辑器,用户可以利用加入Quartus II 提供的基本器件库(primitives)的器件来设计用户也可以利用加入Quartus II 提供的LPMs,宏功能函数(器件),以及用户自己的库涵数来设计。原理图输入设计流程:,选取各个输入设计单元符号宏功能块设置接口和参数信息连接各个输入设计单元(利用管道、单连线或总线等)
15、保存设计,文件的后缀名为.bdf 从原理图可以转化成Verilog/VHDL文件、宏功能器件以便于后续调用。,原理图编辑器选取设计单元,进入方式:由file New block/进入 由模块实现选择进入,原理图编辑器连接各个设计单元,Mux2模块原理图,原理图编辑器转化为自定义功能单元,原理图编辑器自定义功能单元调用,原理图编辑器转化为verilog文件,module mux2(a,b,s,c);inputa;inputb;inputs;outputc;wireSYNTHESIZED_WIRE_0;wireSYNTHESIZED_WIRE_1;wireSYNTHESIZED_WIRE_2;as
16、signSYNTHESIZED_WIRE_2=a endmodule,文本编辑器,D触发器设计输入部分,由模块产生的verilog设计输入模板,选模块由verilogHDL实现弹出的文本编辑器,编译设计,启动编译,编译设计结果修改语法错误,编译结果确认。若有语法错误,修改后再编译。,Quartus2仿真简介,打开Quartus2仿真工具,打开仿真工具,Quartus2仿真工具控制界面,选择功能仿真,产生功能仿真网表。同时检查设计是否有语法错误,若出错修改设计。,设置仿真长度,设置仿真激励波形文件名,打开激励波形文件编辑器,打开波形编辑器设置仿真激励波形,点击右键打开,信号查找工具,波形编辑器信
17、号查找工具,选取激励和输出信号,波形编辑器编辑激励波形,快捷键赋值,选中波形后赋值,运行仿真器,在simulator tool中点击【Start】,运行仿真器。运行完后点击【Report】在信息窗口中显示相关信息,自动打开波形窗查看结果。,信号节点c,d不存在,忽约,打开波形窗,本讲要点,基本概念:数字系统的单元与层次、基本逻辑门:功能、四值逻辑、惯性延时、路径延时、等效负载、扇出。D触发器:功能、建立时间、保持时间、亚稳态、消除亚稳态方法。Verilog语言基本语法、结构描述和行为描述。ROM、RAM的Verilog语言行为描述,赋值延时。基于quartus2的设计输入和功能仿真方法。,实验要求,实验一:设计输入(2学时)学习使用quartus2设计软件。学习模块和原理图编辑器、文本编辑器使用,掌握模块图和原理图的输入方法,完成本讲实例 my_design 的模块图输入和原理图mux2的输入,并完成HDL模块my_dff.v的输入。完成设计编译。,实验二:功能仿真(2学时)学习使用quartus2设计软件。学习仿真工具使用,掌握波形编辑器使用,完成实验一的my_design的激励波形输入,并完成其功能仿真。建立新工程my_ram,输入本讲RAM模块的verilog描述mymem.v,并完成其功能仿真。,