西南交大数字电子技术第5章_第1页
西南交大数字电子技术第5章_第2页
西南交大数字电子技术第5章_第3页
西南交大数字电子技术第5章_第4页
西南交大数字电子技术第5章_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

西南交通大学微电子研究所InstituteofMicroelectronicsSWJTUeCCC第5章存储器及可编程逻辑器件数字电子技术基础5.1半导体存储器存储器的基本概念:字:按照一定位数进行编组得到的二进制数据字长:一个字所包含的位数字数:字的数量存储容量:字长×字数存储地址:用一组二进制数组成的数据描述存储信息的位置存储容量的单位:1G=230=1024M,1M=220=1024K,1K=210=1024公制单位:1G=109=1000M,1M=106=1000K,1k=103=1000常用的存储容量描述方式:N×2n例如:210×8=8K,我们可以判断其字长为8,地址码的位数为10半导体存储器的分类存储器RAM(Random-AccessMemory)ROM(Read-OnlyMemory)RAM(随机存取存储器):RAM中存储的数据在断电以后将全部丢失,即数据易失性。ROM(只读存储器):ROM的数据一旦写入,则可以长久保存。固定ROM可编程ROMPROMEPROME2PROMSRAM(StaticRAM):静态RAMDRAM(DynamicRAM):动态RAMFlashMemory5.1.1只读存储器只读存储器通常由三部分所组成:地址译码器、存储矩阵和输出控制电路。通常由三态缓冲器组成通常由二极管或三极管组成译码器由二极管构成的22×4的ROM的电路结构地址存储内容A1A0D3D2D1D0000111011011100110111101

字线与位线的交点都是一个存储单元。交点处有二极管相当存1,无二极管相当存0当OE=1时输出为高阻状态OTP的内部结构及工作原理将与二极管连接的熔丝通过增加电流的方式熔断称为熔丝,将本没有与二极管连接的熔丝通过同样的方式熔合在一起称为反熔丝。尽管后来的可编程ROM的工作原理发生了变化,但熔丝图文件和“烧”的用语沿用至今。ROM的应用码制变换--把欲变换的编码作为地址,把最终的目的编码作为相应存储单元中的内容即可。(1)用于存储固定的专用程序(2)利用ROM可实现查表或码制变换等功能查表功能--查某个角度的三角函数。把变量值(角度)作为地址码,其对应的函数值作为存放在该地址内的数据,这称为“造表”。使用时,根据输入的地址(角度),就可在输出端得到所需的函数值,这就称为“查表”。ROM应用举例-实现组合逻辑函数例:试用ROM实现下列函数:解:求出上述函数的真值表:11101000Y210010000Y111111110110111001011101010011000ABCD100111010110000101000100010011000010000001010000Y2Y1ABCD要用容量为162bit的ROM来实现,将表中Y1和Y2的值存入ROM即可.ROM应用举例-实现代码转换例1.用ROM实现十进制数码(输入为8421BCD)显示,采用共阴极七段数码管。ROM的功能就是将8421BCD码转换为共阴极七段数码管的段码所需存储容量为24×7bitcROM中应写入的内容A3A2A1A0D1D2D3D4D5D6D700000000001000110011110010001001000110000110010010011000101010010001100100000011100011111000000000010000001100101011111111011111111111001111111110111111111110111111111111111111对于不是8421BCD码的情况,上表中的处理方法是将所有的存储内容写为1,也可以根据需要进行其它方式的处理。例2.将两位十进制数(8421BCD)转换为二进制数两位十进制数ROM二进制数8bit7bit所需ROM容量为28×7bit00001111××××000010100001001000010010001010110001110011001……000101100010001……000000100000001000000000000000存储内容地址00010000…解:根据题意,两位十进制数用8421BCD码描述需要8位,而其所能描述的最大二进制数为99,其对应的二进制数为1100011,只需要7位二进制数就可以描述,因此所需ROM的存储容量为28×7。对于地址组合中不是有效两位8421BCD码的,可以当成无关项进行处理。5.1.2随机存取存储器SRAM的结构框图控制端与ROM的不同之处与ROM不同SRAM的工作模式静态RAM的存储单元双稳态存储单元电路列存储单元公用的门控制管,与读写控制电路相接Yi=1时导通本单元门控制管:控制触发器与位线的接通。Xi=1时导通来自列地址译码器的输出来自行地址译码器的输出静态RAM存储单元的工作原理T5、T6导通T7、T8均导通Xi=1Yj=1触发器的输出与数据线接通,该单元通过数据线读取数据。触发器与位线接通动态RAM存储单元的内部结构及工作原理

T

存储单元写操作:X=1=0T导通,电容器C与位线B连通输入缓冲器被选通,数据DI经缓冲器和位线写入存储单元如果DI为1,则向电容器充电,C存1;反之电容器放电,C存0。

-

刷新R行选线X读/写输出缓冲器/灵敏放大器刷新缓冲器输入缓冲器位线B读操作:X=1=1T导通,电容器C与位线B连通输出缓冲器/灵敏放大器被选通,C中存储的数据通过位线和缓冲器输出

T

/

刷新R行选线X输出缓冲器/灵敏放大器刷新缓冲器输入缓冲器位线B每次读出后,必须及时对读出单元刷新,即此时刷新控制R也为高电平,则读出的数据又经刷新缓冲器和位线对电容器C进行刷新。存储器容量的扩展容量扩展分为两种形式:位数(或者字长)扩展和字数扩展位数扩展地址扩展(字数扩展)字数的扩展可以利用外加译码器控制存储器芯片的片选输入端来实现。地址扩展(字数扩展)5.2可编程逻辑器件可编程逻辑器件(PLD)低密度可编程逻辑器件高密度可编程逻辑器件PROMPALPLAGALCPLDFGPA5.2.1PLD电路的描述方式(1)连接的方式5.2.1PLD电路的描述方式(2)基本门电路的表示方式F1=A•B•C与门或门ABCDF1

AB

C

F1

AB

CF2

DF2=A+B+C+D5.2.1PLD电路的描述方式三态输出缓冲器输出恒等于0的与门输出为1的与门输入缓冲器5.2.2简单可编程器件内部结构与阵列和或阵列:生成“与或”形式的逻辑函数。输入电路输入电路中为了适应各种输入情况,每一个输入信号都配有一缓冲电路,使其具有足够的驱动能力,同时提供输入信号的原变量和反变量形式。输出电路输出电路有多种输出方式,可以由或阵列直接输出,构成组合方式输出,也可以通过寄存器输出,构成时序方式输出。输出可以是低电平有效,也可以是高电平有效;可以直接接外部电路,也可以反馈到输入与阵列。几种PLD可编程部位的比较与阵列或阵列PROM固定可编程PLA可编程可编程PAL可编程固定GAL可编程固定/可编程组合逻辑电路的PLD实现例1:写出下面电路输出F2,F1,F0的函数表达式。与阵列或阵列(该PLD的与阵列与或阵列都是可编程的)组合逻辑电路的PLD实现例2:用右图中PLD实现下列逻辑函数:实现电路如右图所示:简化后的GAL原理图5.2.2复杂可编程逻辑器件和现场可编程门阵列1、CPLDCPLD的结构如下图所示,实现功能的核心是逻辑快可编程内部连线可编程内部连线的作用是实现逻辑块与逻辑块之间、逻辑块与I/O块之间以及全局信号到逻辑块和I/O块之间的连接。

连线区的可编程连接一般由E2CMOS管实现。可编程连接原理图

内部连线

宏单元或I/O连线

E2CMOS管

T

当E2CMOS管被编程为导通时,纵线和横线连通;未被编程为截止时,两线则不通。2、FPGACPLD用可编程“与-或”阵列实现逻辑函数。编程基于E2PROM或快闪存储器。FPGA是用查找表(LUT)实现逻辑函数。复杂函数使用众多的LUT和触发器实现。编程基于SRAM。FPGA结构FPGA包括:可编程逻辑块、可编程互联开关、可编程I/O模块。逻辑块互连开关I/O5.3VerilogHDL语言简介硬件描述语言(HardwareDescriptionLanguage,HDL)是一种利用文本的形式描述数字电路系统的方法;HDL可以用来描述组合逻辑电路和时序逻辑电路;描述方式主要分为三种:结构级描述、数据流型描述和行为级描述5.3.1组合逻辑电路的实例三种描述方式的区别:行为级只对行为和功能进行描述,可以不需要得到逻辑函数,不涉及实现的电路,EDA软件的综合工具可以将其转变为底层的网表格式;数据流型主要通过连续赋值语句对逻辑函数或逻辑关系进行描述;结构级则需要调用Verilog语言内置的基元或者用户定义的模块,从结构上对逻辑问题进行描述这三种方式依次从高级到低级,组合逻辑电路可采用任意一种方式进行描述。结构级描述方式举例例:用VerilogHDL语言描述一位半加器,如果用A,B分别表示两个1位二进制数,S和C分别表示相加的和以及向高位的进位。不难得到,此组合逻辑问题的逻辑函数为HDL描述为moduleHA_1bit(A,B,S,C);inputA,B;outputS,C;wireAnot,Bnot,AandB1,AandB2;notn1(Anot,A),n2(Bnot,B);andn3(AandB1,Anot,B),n4(AandB2,A,Bnot);orn5(S,AandB1,AandB2);andn6(C,A,B);endmodule模块名输入输出端口线网型中间变量定义原语名称调用名(可省略)该门的输入变量和输出变量(输出在前)模块结尾,不需要分号数据流型的描述举例例:用数据流的方式来描述一个4选1的数据选择器,其逻辑函数表达式可写成:其中mi为由地址输入端A1,A0所组成的最小项。代码如下:modulemux_4to1(D,A,Y);input[3:0]D;input[1:0]A;outputY;assignY=D[0]&(~A[1]&~A[0])|D[1]&(~A[1]&A[0])|D[2]&(A[1]&~A[0])|D[3]&(A[1]&A[0]);endmodule模块主体,对应着上述表达式数据流型必须以关键词assign开头*只需要得到逻辑函数表达式;*数据流型描述方式的输出变量必须定义为线网型;常用的运算符运算符分类所含运算符算术运算符+,-,*,/,%位运算符~,&,|,^,^~or~^缩位运算符(单目)&,~&,|,~|,^,^~or~^逻辑运算符!,&&,||关系运算符(双目)<,>,<=,>=相等与全等运算符==,!=,===,!==逻辑移位运算符<<,>>连接运算符{}条件运算符?:行为级描述方式举例例:用VerillogHDL描述7段共阴级译码器,代码如下:moduledecode4_7(a,EN,Y);input[3:0]a;inputEN;outputreg[6:0]Y;always@(a)beginif(EN==0)Y=7'b0000000;elsecase(a)4'd0:Y=7'b1111110;4'd1:Y=7'b0110000;4'd2:Y=7'b1101101;4'd3:Y=7'b1111011;4'd4:Y=7'b0110011;4'd5:Y=7'b1011011;4'd6:Y=7'b1011111;4'd7:Y=7'b1110000;4'd8:Y=7'b1111111;4'd9:Y=7'b1111011;default:Y=7'bx;endcaseendendmodulealways语句块里的输出变量必须定义为寄存器型x代表不确定敏感事件为电平高低多维变量的定义数的描述方式:<位长度><’进制符号><对应的数字>ifelse语法结构为if(表达式1)语句1;elseif(表达式2)语句2;…else语句3;当所对应的表达式为真时,则执行后面的语句,如果语句为两句或两句以上,则需要用begin和end作为开头和结尾。5.3.2时序逻辑电路的实例时序逻辑电路需采用行为级的描述方式;always语句里的敏感事件通常为脉冲边沿,用posedge和negedge分别表示上升沿和下降沿;括号里的敏感事件不能同时为电平敏感和边沿敏感;赋值语句分为两种类型:阻塞型和非阻塞型,分别对应为=和<=。case语句是一种常用的多分支条件选择语句,其语法结构为case(表达式)选项值1:语句1;选项值2:语句2;选项值3:语句3;…default:缺省语句;endcase执行的过程如下:先计算表达式的值,然后在所有选项值里寻找是否存在与之一致的选项值,如果有,则执行后面对应的语句,如果没有,则执行缺省语句。缺省语句不是必须的,如果没有缺省语句,同时又没有选项值,则case语句不会执行。阻塞型和非阻塞型赋值的区别阻塞性赋值举例及仿真结果:moduleblocking(d,a,b,cp);inputd,cp;outputrega,b;al

温馨提示

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

评论

0/150

提交评论