第七章可编程逻辑电路“软件固化”,“以存代算”思想的体现用软件设计硬件:硬件描述语言(HDL)硬件设计的进步:方便、灵活、可修改设计•用户可编程•设计方便•易于实现主要内容:可编程逻辑器件及应用目录7.2只读存储器(ROM)7.3随机存储器(RAM)7.4可编程逻辑器件概述(PAD)7.5通用阵列逻辑GAL7.1导论7.6现场可编程门阵列FPGA最常用的可编程逻辑器件可编程逻辑器件PLD(ProgrammableLogicDevice)是一大类器件的总称,包括:•ROM(Read-OnlyMemory)只读存储器•PLA(ProgrammableLogicArray)可编程逻辑阵列•PAL(ProgrammableArrayLogic)可编程阵列逻辑•GAL(GeneralArrayLogic)通用阵列逻辑•还有FPGA,CPLD等7.1导论7.2只读存储器(ROM)两大类存储器(Memory)ROM(Read-OnlyMemory)•一旦信息写入,在机器上只读RAM(Random-AccessMemory)•随机存储器,在运行状态可读可写ROM功能存放固定信息•程序,常数,指令,......ROM的优点信息非“易失”(Nonvolatile)简单,容量大ROM分类ROMPROMMaskPROMEPROMUVEPROME2PROMFlashE2PROMStandardE2PROMOTPPROM多次编程一次编程工厂编程用户编程只读存储器ROM分类ROM掩膜ROM内容只能读出,不能改变.半导体厂家用掩膜技术写入程序成本低,适用于批量生产不适用研究工作PROM可编程ROM内容只能读出,不能改变.用户使用特殊方法进行编程,只能写一次,一次编程不能修改。适用于批量生产不适用研究工作EPROM光可擦除PROM固化程序用紫外线光照5~15分钟擦除,擦除后可以重新固化新的程序和数据。用户可以对芯片进行多次编程和擦除。适用于研究工作不适用于批量生产。E2PROM电可擦除PROM实现全片和字节擦写改写,作为非易失性RAM使用。集成度和速度不及EPROM,价格高,擦写在原系统中在线进行。FlashMemory快速电擦写存储器可以整体电擦除(时间1S)和按字节重新高速编程。CMOS低功耗;编程快(每个字节编程100μs整个芯片0.5s);擦写次数多(通常可达到10万)与E2PROM比较:容量大、价格低、可靠性高等优势。用于PC机内装操作系统和系统不能丢失初始功能的专门领域。需要周期性地修改被存储的数据表的场合。内存细分信息存取方式特点用途ROM结构字线位线4字×4位存储体输出缓冲器W0W1W2W3A0A1B3B2B1B0F3F2F1F0地址译码器地址ROM的工作原理001100011100导通导通存储矩阵是一个“或”逻辑阵列100WWD311WWD3202WWWD313WWDW3=A1A0m3m2W2=A1A0m1W1=A1A0m0W0=A1A0A0A1地址译码器D3D2D1D0简化的ROM存储矩阵阵列图有二极管无二极管存储体或阵列可以画为:W0W1W2W3B0B1B2B3W0W1W2W3B0+W0W2B0++地址译码:与阵列A0A1W0W1W2W3A0_A0A1_A1A0A1W0A0A0A1A1W0ROM字数很大时,译码系统很复杂。字数较大,采用多级译码字数很少,一级译码PROM——与阵列固定、或阵列可编程W0W1W2W3A0A1++++Y0Y1Y2Y3固定连接可编程连接不连接8x4ROMA0A1A2F0F1F2F3与阵列不可编程或阵列可编程8个存储单元,每个单元存储4位二进制数码。512x8PROM芯片结构存储阵列8-1Mux64x64译码64A8A3...缓冲3A2A1A06位3位......F7F6...F0888CE0CE1CE2缓冲ROM的应用1、位扩展用4片328ROM扩展成3232ROM。【例】2、字扩展用256片(512x8)ROM芯片扩展成128Kx8ROM512x8ROM512x8ROM512x8ROM512x8ROM............16片16片4-164-16译码列选择行选择__CE0__CE1【例1】用2片(32x8)ROM芯片扩展成128x4ROM【例2】3、用存储器实现组合逻辑函数【例1】试用ROM设计一个八段字符显示的译码器。100011101111110111101110011110101101000110101100001111101011111110101010111101111001111111111000111000010111101111110110101101110101011001110100111100110011110110110010011000010001111111010000abcdefghDCBA显示输出输入电路图EN【例2】试用ROM产生如下的一组多输出逻辑函数Y1=DCB+DCBY2=DCBA+CBA+DCBAY3=DCBA+DCBAY4=DCBA+DCBA解:将原式化为最小项之和的形式Y1=DCBA+DCBA+DCBA+DCBA=m2+m3+m6+m7Y2=DCBA+DCBA+DCBA+DCBA=m6+m7+m10+m14Y3=DCBA+DCBA=m4+m14Y4=DCBA+DCBA=m2+m15点阵图Y1=DCBA+DCBA+DCBA+DCBA=m2+m3+m6+m7Y2=DCBA+DCBA+DCBA+DCBA=m6+m7+m10+m14Y3=DCBA+DCBA=m4+m14Y4=DCBA+DCBA=m2+m15DCBAm0m1m2m14m154、字符发生器字符:0、1点阵组成例如:字母E111111000010000111101000010000111117x5点阵7x5ROM计数器CK译码器RAM按着工作原理分为:7.3随机存储器1.静态随机存储器SRAM2.动态随机存储器DRAM一、静态RAM的结构和工作原理地址译码器读写控制电路存储矩阵A0A1A1n-数据输入/输出(I/O)片选()CS读/写控制()R/W1V2V3V4VDDV5V6V7V8V&ENEN&ENDiXjBjBD1Y列线位线位线存储单元G3G2G1/OI/WR行线(1)静态存储单元图中VT1~VT4构成RS触发器,用以存储二进制信息。VT5、VT6为门控管,其状态由行线(Xi)决定。Xi=1时,VT5、VT6导通,Q和的状态送至位线(Bj、)上。VT7、VT8是每列存储单元的门控管,其状态取决于列线Yj。Yj=1时,VT7、VT8导通,数据端D、和位线接通,并通过三态门G1~G3进行读(输出)、写(输入)等操作。jBQ二、RAM的存储单元1V2V3V4VDDV5V6V7V8V&ENEN&ENDiXjBjBD1Y列线位线位线存储单元G3G2G1/OI/WR行线由G1~G3三个三态缓冲器构成读写控制电路。时,G2、G3截止,G1导通,数据D送至I/O线上,进行读出;时,G1截止,G2、G3导通,I/O线上的数据送入存储单元,进行写入。1/WR0/WR一个三MOS管动态单元,信息存储在VT2管的栅极电容Cg上,用Cg上的电压控制VT2的状态。读字线控制VT2管,写字线控制VT1管。VT4管是同列若干存储单元的写入时的预充管图7-2-3三管动态存储单元DDVDCCg3VT2VT1VT4VT预充脉冲读字线读位线写字线写位线在进行读操作时,首先使位线上的电容CD预充到VDD,然后选通读字线为高电平,则VT3管导通。如果Cg上的电压超过了VT2管的开启电压,VT2和VT3均导通,CD将通过VT2和VT3放电到低电平。如果Cg上没有电荷VT2管截止,CD没有放电通路,仍保持预充后的高电平。可见,在读位线上获得的电平和栅极电容Cg上的电平是相反的。通过读出放大器可将读位线上的电平数据送至存储器的输出端。图7-2-3三管动态存储单元DDVDCCg3VT2VT1VT4VT预充脉冲读字线读位线写字线写位线在进行写操作时,控制写字线为高电平,使VT1管导通。由存储器输入端送来的信号传到写位线,通过VT1管控制Cg上的电位,将信息存储到Cg上。因为Cg存在漏电,需要对Cg上的信息定时刷新。可周期性的读出Cg上信息到读位线上,经过反相器,再对存储单元进行写操作,即可完成刷新。DDVDCCg3VT2VT1VT4VT预充脉冲读字线读位线写字线写位线该电路中的预充电作用很重要,可以防止存储电容C1(或C2)上的电荷在数据读出时有损失,以免输出的高电平受破坏。DDVDCCg3VT2VT1VT4VT预充脉冲读字线读位线写字线写位线7.4可编程逻辑器件概述PROM的特点:•地址字,一一对应,所需存储容量大•信息表完全PLA针对ROM这一特点•逻辑压缩W0W1W2W3A0A1++++Y0Y1Y2Y3PROM与阵列固定、或阵列可编程W0W1W2W3A0A1++++Y0Y1Y2Y3PLA与、或阵列均可编程集成化的PLA16路输入8路输出I0I1I15“或”矩阵“与”矩阵VCC48P项可控求反异或门【例】存储信息表输入输出I3I2I1I0F7F6F5F4F3F2F1F0000000000000000100000001001000000100001100001001010000010000010100111001011000000100011100110001100001000000100101010001101001000100101101010001110000010000110100001001111011100100111111100001用16x8ROM存储F0F1F2F3F4F5F6F7I0I1I2I3P0P1P2P3P4P5P6P7P8I0I1I2I3P0P1P2P3P4P5P6P7P8P15……ROM容量:与阵列8x16,或阵列16x8,总容量256。用PLA存储将表达式逻辑压缩(化简)输入输出I3I2I1I0F7F6F5F4F3F2F1F0000000000000000100000001001000000100001100001001010000010000010100111001011000000100011100110001100001000000100101010001101001000100101101010001110000010000110100001001111011100100111111100001F0=I0F1=0F2=I1I0F3=I2I1I0+I2I1I0F4=I2I1I0+I3I2I0+I3I2I0F5=I3I2I0+I3I2I1F6=I3I2+I3I2I1F7=I3I2I1=P0=P1=P2+P3=P4+P5+P6=P5+P7=P8+P7=P7点阵图P0=I0P1=I1I0P2=I2I1I0P3=I2I1I0P4=I2I1I0P5=I3I2I0P6=I3I2I0P7=I3I2I1P8=I3I2F0=P0F2=P1F3=P2+P3F5=P5+P7F6=P8+P7F7=P7F1=0F4=P4+P5+P6PLA容量与阵列:8x9或阵列:8x92N(输入数)M(输出数)P项数总点数:144I0I1I2I3I0I1I2I3P0P1P2P3P4P5P6P7P8P0P1P2P3P4P5P6P7P8F0F1F2F3F4F5F6F7存入信息表的PLAP0=I0P1=I1I0P2=I2I1I0P3=I2I1I0P4=I2I1I0P5=I3I2I0P6=I3I2I0P7=I3I2I1P8=I3I2F0=P0F2=P1F3=P2+P3F5=P5+P7F6=P8+P7F7=P7F1=0F4=P4+P5+P6F0F2F3F4F5F6F7F1I0I1I2I3P0P1P2P3P4P5P6P7P8VCCPLA的特点•与阵列可编ROM的译码器是完全译码器。N个输入必然有2N个字。PLA的地址译码器是非完全译码器。用户可编程形成P项(不是最小项)。非完全寻址。非对应关系。