jjzjj

沟道长度调制效应与短沟道效应

粉色挖掘机 2024-01-22 原文

MOS晶体管在饱和与非饱和区的行为

以NMOS为例,当VGS>VT且VGS=VGD时,形成厚度均匀的沟道;

当MOS管工作在非饱和区时,VGS和VDS均大于阈值电压VT,这样才能形成源漏之间的沟道,此时,若VGD<VGS,沟道区的电势分布将不仅与由栅电压及衬底偏置电压决定的纵向电场有关,而且与由漏极电压控制的横向电场也有关,在漏极附近硅外表面感应的电子数要比源区感应的电子数目少, 漏极的沟道厚度就比源区沟道厚度薄。

假如继续增加漏极-源极间电压VDS,以致于VDS=VGS-VT,这时的工作区域相当于非饱和区与饱和区的分界处。由于栅极—漏极间电压VGD=VGS-VDS=VT,所以栅极-漏极间电压就与阈值电压VT相等。就是说,漏区沟道消失了,我们把沟道消失的状态称为夹断。继续再增大漏源电压,就变成VDS>VGS-VT,此时NMOS晶体管就工作在饱和区了。

发生夹断的情况下,当沟道端与漏区之间的耗尽层的长度△L相较于有效沟道长度(L-△L)可以忽略时,夹断时漏极电流是一个定值。

假如MOS晶体管的沟道长度L变短,那么△L就不可疏忽。随着VDS的增加,△L也增加,使有效沟道长度(L-△L)变短,因而如图1. 30所示,漏极电流增加,这叫做沟道长度调制效应。

亚域状态

晶体管亚阈状态是MOSFET的一种重要工作状态(工作模式),又称为MOSFET的亚阈值区(Subthreshold region)。

这是MOSFET的栅极电压Vgs处在阈值电压VT以下、又没有出现导电沟道的一种工作状态,即是Vgs≤VT 、表面势ψs ≈ 费米势ψb(即表面为弱反型)的状态。这时还是有一股较小的电流通过器件,该电流即称为亚阈电流。

亚阈电流虽然较小,但是它却能很好地够受到栅极电压的控制,所以亚阈状态的MOSFET在低电压、低功耗应用时很有利,特别是在逻辑开关和存储器等的大规模集成电路应用中非常受到人们的重视。

短沟道效应

当MOS晶体管的沟道长度小到可以和漏结及源结的耗尽层厚度相比拟时,会出现一些不同于长沟道MOS管特性的现象,统称为短沟道效应,它们归因于在沟道区出现二维的电势分布以及高电场。

MOSFET的沟道长度小于3um时发生的短沟道效应较为明显。短沟道效应是由以下五种因素引起的,这五种因素又是由于偏离了理想按比例缩小理论而产生的:

(1)由于电源电压没能按比例缩小而引起的电场增大;

(2)内建电势既不能按比例缩小又不能忽略;

(3)源漏结深不能也不容易按比例减小;

(4)衬底掺杂浓度的增加引起载流子迁移率的降低;

(5)亚阈值斜率不能按比例缩小。

沟道长度减小到一定程度后,源、漏结的耗尽区在整个沟道中所占的比重增大,栅下面的硅表面形成反型层所需的电荷量减小,因而阈值电压减小。同时衬底内耗尽区沿沟道宽度侧向展宽部分的电荷使阈值电压增加。当沟道宽度减小到与耗尽层宽度同一量级时,阈值电压减小变得十分显著。短沟道器件阈值电压对沟道长度的变化非常敏感。

低场下迁移率是常数,载流子速度随电场线性增加。高场下迁移率下降,载流子速度达到饱和,不再与电场有关。速度饱和对器件的影响一个是使漏端饱和电流大大降低,另一个是使饱和电流与栅压的关系不再是长沟道器件中的近平方关系,而是线性关系。

器件尺寸进入深亚微米沟长范围,器件内部的电场强度随器件尺寸的减小而增强,特别在漏结附近存在强电场,载流子在这一强电场中获得较高的能量,成为热载流子。热载流子在两个方面影响器件性能:1)越过Si-SiO2势垒,注入到氧化层中,不断积累,改变阈值电压,影响器件寿命;2)在漏附近的耗尽区中与晶格碰撞产生电子空穴对,对NMOS管,碰撞产生的电子形成附加的漏电流,空穴则被衬底收集,形成衬底电流,使总电流成为饱和漏电流与衬底电流之和。衬底电流越大,说明沟道中发生的碰撞次数越多,相应的热载流子效应越严重。热载流子效应是限制器件最高工作电压的基本因素之一。

亚阈区泄漏电流使MOSFET器件关态特性变差,静态功耗变大。在动态电路和存储单元中,它还可能导致逻辑状态发生混乱。因而由短沟道引起的漏感应势垒降低(DIBL)效应成为决定短沟道MOS器件尺寸极限的一个基本物理效应。

有关沟道长度调制效应与短沟道效应的更多相关文章

  1. ruby-on-rails - unicode 字符串的长度 - 2

    在我的Rails(2.3,Ruby1.8.7)应用程序中,我需要将字符串截断到一定长度。该字符串是unicode,在控制台中运行测试时,例如'א'.length,我意识到返回了双倍长度。我想要一个与编码无关的长度,以便对unicode字符串或latin1编码字符串进行相同的截断。我已经了解了Ruby的大部分unicode资料,但仍然有些一头雾水。应该如何解决这个问题? 最佳答案 Rails有一个返回多字节字符的mb_chars方法。试试unicode_string.mb_chars.slice(0,50)

  2. ruby - 如何以所有可能的方式将字符串拆分为长度最多为 3 的连续子字符串? - 2

    我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123

  3. ruby - 匹配大写字母并用后续字母填充,直到一定的字符串长度 - 2

    我有一个驼峰式字符串,例如:JustAString。我想按照以下规则形成长度为4的字符串:抓取所有大写字母;如果超过4个大写字母,只保留前4个;如果少于4个大写字母,则将最后大写字母后的字母大写并添加字母,直到长度变为4。以下是可能发生的3种情况:ThisIsMyString将产生TIMS(大写字母);ThisIsOneVeryLongString将产生TIOV(前4个大写字母);MyString将生成MSTR(大写字母+tr大写)。我设法用这个片段解决了前两种情况:str.scan(/[A-Z]/).first(4).join但是,我不太确定如何最好地修改上面的代码片段以处理最后一种

  4. ruby - 从 String#split 返回的零长度字符串 - 2

    在Ruby1.9.3(可能还有更早的版本,不确定)中,我试图弄清楚为什么Ruby的String#split方法会给我某些结果。我得到的结果似乎与我的预期相反。这是一个例子:"abcabc".split("b")#=>["a","ca","c"]"abcabc".split("a")#=>["","bc","bc"]"abcabc".split("c")#=>["ab","ab"]在这里,第一个示例返回的正是我所期望的。但在第二个示例中,我很困惑为什么#split返回零长度字符串作为返回数组的第一个值。这是什么原因呢?这是我所期望的:"abcabc".split("a")#=>["bc"

  5. Ruby - 如何将消息长度表示为 2 个二进制字节 - 2

    我正在使用Ruby,我正在与一个网络端点通信,该端点在发送消息本身之前需要格式化“header”。header中的第一个字段必须是消息长度,它被定义为网络字节顺序中的2二进制字节消息长度。比如我的消息长度是1024。如何将1024表示为二进制双字节? 最佳答案 Ruby(以及Perl和Python等)中字节整理的标准工具是pack和unpack。ruby的packisinArray.您的长度应该是两个字节长,并且按网络字节顺序排列,这听起来像是n格式说明符的工作:n|Integer|16-bitunsigned,network(bi

  6. ruby - 在 Ruby 中将整数格式化为固定长度的字符串 - 2

    有没有一种简单的方法可以将给定的整数格式化为具有固定长度和前导零的字符串?#convertnumberstostringsoffixedlength3[1,12,123,1234].map{|e|???}=>["001","012","123","234"]我找到了解决方案,但也许还有更聪明的方法。format('%03d',e)[-3..-1] 最佳答案 如何使用%1000而不是进行字符串操作来获取最后三位数字?[1,12,123,1234].map{|e|format('%03d',e%1000)}更新:根据theTinMan的

  7. ruby - 如何根据长度将路径数组转换为嵌套数组或散列 - 2

    我需要根据字符串路径的长度将字符串路径数组转换为符号、哈希和数组的数组给定以下数组:array=["info","services","about/company","about/history/part1","about/history/part2"]我想生成以下输出,对不同级别进行分组,根据级别的结构混合使用符号和对象。产生以下输出:[:info,:services,about:[:company,history:[:part1,:part2]]]#altsyntax[:info,:services,{:about=>[:company,{:history=>[:part1,:pa

  8. ruby - 我可以创建长度为 8 的 md5 哈希吗? - 2

    是否可以创建8个字符长的md5散列? 最佳答案 MD5创建16字节的哈希值。您当然可以将字符串裁剪为八个字符,如myString[0..7]一样,但请注意,这不再是有效的MD5散列。 关于ruby-我可以创建长度为8的md5哈希吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5854208/

  9. ruby - 如何在 Ruby 中返回整数的固定长度二进制表示? - 2

    我知道我可以使用Fixnum#to_s将整数表示为二进制格式的字符串。但是1.to_s(2)生成1而我希望它生成00000001。我怎样才能使所有返回的字符串都以零作为填充到8个字符?我可以使用类似的东西:binary="#{'0'*(8-(1.to_s(2)).size)}#{1.to_s(2)}"if(1.to_s(2)).size但这看起来不是很优雅。 最佳答案 使用字符串格式。"%08b"%1#=>"00000001" 关于ruby-如何在Ruby中返回整数的固定长度二进制表示?

  10. ruby-on-rails - 给定长度的完全随机标识符 - 2

    我想生成一个包含数字、字母和特殊字符的给定(长度可能不同)长度的完全随机的“唯一”(我将确保使用我的模型)标识符例如:161551960578281|2.AQAIPhEcKsDLOVJZ.3600.1310065200.0-514191032|有人可以建议在RubyonRails中最有效的方法吗?编辑:重要:如果可能,请评论您提出的解决方案的效率,因为每次用户进入网站时都会使用它!谢谢 最佳答案 将其用于访问token与UUID不同。您不仅需要伪随机性,而且还需要加密安全PRNG.如果您真的不关心您使用的是什么字符(它们不会增加任何

随机推荐