目录
单选题(每题2分 共20题)
1/38一个八位D/A转换器最小电压增量为0.01V,当输10011100时,输出电压为( )V
A 1.28
B 1.45
C 1.54
D 1.56
解:D
2/38下述概念中不属于面向对象这种编程范畴的是()
A对象、消息
B继承、多态
C类、封装
D过程调用
解:D
3/38组合逻辑电路通常由( )组合而成
A记忆元件
B门电路
C计数器
D以上都正确
解:B
4/38三极管作为开关时工作在什么区域()
A饱和区+放大区
B击穿区+截止区
C放大区+击穿区
D饱和区+截止区
解:A D
一共有放大区,饱和区 ,截止区三个区
工作在开关状态时是截止和饱和(饱和区-开关接通,截止区-开关断开)
作为放大器用时工作在放大区
5/38在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为()
A char<int<long int<=float<double
B char=int<long int<=float<double
C char<int<long int=float=double
D char=int=long int<=float<double
解:B A
char int 1个字节
int 2字节
long int float 4个字节
double 8个字节
6/38下面表达式计算结果为4的是()
A 11/3
B 11.0/3
C (float)11/3
D (int)(11.0/3+0.5)
解:D
7/38关于this指针使用做法正确的是()
A 保证每个对象拥有自己的数据成员,但共享处理这些数据的代码
B 保证基类私有成员在子类中可以被访问
C 保证基类保护成员在子类中可以被访问
D 保证基类公有成员在子类中可以被访问
解:A项正确 保证每个对象拥有自己的数据成员,但共享处理这些数据的代码 相同类型的对象共用同一段实现代码,所以需要用this指针区分对象与对象之间的差异。
8/38在timescale 1ns/10ps的条件下,仿真器在6125ps时的打印时间格式为()
A 6
B 61
C 613
D 6125
解:B
verilog中的timescale用法_阿君丶的博客-CSDN博客
9/38下列描述中采用时钟正沿触发且reset异步下降沿复位的代码描述是()
A always@(posedge clk or negedge reset) if(reset)
B always@(posedge clik or reset) if(reset)
C always@(posedge clk or negedge reset) if(!reset)
D always@(negedge clk or posedge reset) if(resent)
解:C
10/38一个数组元素a[l]与下面哪个表示等价()
A *a+1
B a+1
C *(a+1)
D &a+1
解:C
11/38在systemverilog中声明随机变量的关键词为()
A randa
B randc
C randomize
D urandom_range
解:B rand 和 randc
12/38在设计中出现端口和驱动该端口位宽不匹配的情况,verilog/systemverilog默认处理方法错误的是()
A如果端口的位宽和驱动该端口的信号位宽相同,则该值可以无变化的通过该端口
B如果驱动端口比端口的接收端的位宽多,则驱动信号的高位bit会被截断
C如果驱动端口比端口的接收端的位宽多,则驱动信号的低位bit会被载断
D如果驱动端口比端口的接收端的位宽少,则依据verilog的赋值规则进行高比特位扩展
解:B
13/38 linux下,删除文件命令是()
A mkdir
B rm
C mv
D del
解:B
14/38
timescale 1ns/1ps
fork
begin #1;end
begin #2;end
join_none
$display($time);
上述代码中需要等待多长时间?()
A 1ns
B 2ns
C 0ns
D 3ns
解:B
15/38构成C语言程序的基本单位是()
A 函数
B 过程
C子程序
D 子例程
解:A
16/38 在veriliog HDL的always块语句中的语句是如何执行的
A 顺序
B 并行
C 顺序或并行
D 不一定
解:B
17/38在C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为
A 0~255
B 0~32767
C 0~65535
D 0~2147483647
解:C
18/38以下哪些是第三代移动通信标准
A EDGE
B TD-SCDMA
C LTE
D WIFI
解:B
第三代移动通信系统主要标准有WCDMA、CDMA2000、TD-SCDMA
19/38循环体至少被执行次的语句是
A for循环
B while循环
C do循环
D 任何一种循环
解:C
20/38 Verilog HDL中信号没有定义数据类型时,缺省为什么数据类型
A reg
B wire
C tri
D z
解:B
多选题(共15题,每题两分)
21/38下面哪个选项不可以消除hold time violation
A 插入buff
B 提高时钟频率
C 降低时钟频率
D 提高电压
解:BCD
22/38下面那些是基于Systemverilog的验证方法学?
A VMM
B OVM
C UVM
D AVM
解:ABC
23/38下面哪种方式可以对时序进行检查
A 即时断言
B 并发断言
C 建立时间约束
D 保护时间约束
解:CD 不懂?
BCD
建立时间检查:建立时间检查会验证触发器时钟和数据引脚之间的时序关系,从而满足建立时间要求。
保持时间检查:保持时间检查可确保正在变化的触发器输出值不会传递到捕获触发器、并在捕获触发器有机会捕获其原始值之前重写(overwrite)其输出。
多周期路径:在某些情况下,两个触发器之间的数据路径可能需要一个以上的时钟周期才能传播通过逻辑。在这种情况下,这条组合逻辑路径会被定义为多周期路径(multicycle path)。
伪路径检查:当设计的功能运行时,某些时序路径可能不真实(或不可能)存在。在执行STA时可以将这些路径设置为伪路径(false path),这样就可以关闭这些路径。
半周期路径:如果设计中同时具有负边沿触发的触发器(有效时钟沿为下降沿)和正边沿触发的触发器(有效时钟沿为上升沿),则设计中可能存在半周期路径(half-cycle path)。
撤销时间检查(removal timing check)可确保在有效时钟沿与释放异步控制信号之间有足够的时间。
恢复时间检查(recovery timing check)可确保异步信号变为无效状态的时刻与下一个有效时钟沿之间的时间间隔大于一个最小值。
跨时钟域检查;多时钟检查。
断言的作用:易于调试,提供功能覆盖和模拟速度更快,确保验证完整性。
并发断言:基于时钟的,调度区间按assertion的调度区间,可以在过程块(always initial),模块(module),接口(interface),程序(program)中定义。
即时断言:基于事件的,本质不是时序关系,会立刻求值。进行检查。
SystemVerilog Assertion断言学习_谷公子的博客-CSDN博客_systemverilog断言
24/38芯片中设计功耗密度过大,会产生什么不良影响
A Hot-spot
B电压下降
C不满足时序约束
D封装成本变高
解:
A、热点图
B、?
C、功耗上升影响T,导致delay增加
D、封装要考虑散热设计吧
低功耗技术专栏https://blog.csdn.net/l471094842/category_9608661.html
那么降低电压可以有那些方法呢?
- 对不同的模块提供不同的电压。比如CPU和外设需要的频率就不一样,那么在同时满足两个模块性能的前提下,CPU需要很高的频率,那就需要高的VDD; 外设可能只需要较低的频率,那么低的VDD就能达到这个频率的延时需求,所以可以给它低VDD;
- 对同一个模块,可能不同应用需要的频率也不同。比如玩游戏的时候GPU就需要很高的频率,但是文字阅读的时候可能频率就很低;待机的时候GPU甚至就可以关掉。这样不同的应用模式,电压可以是高VDD, 低VDD, 甚至为0.
其实所有的低功耗电压技术就是上面两种方法的不同策略:
- 如果对不同的模块固定成不同的电压,那么就是静态多电压技术. (MSV: Multi Supply Vdd)
- 如果对不同的模块可以选择几种不同的电压配置,那么就是动态电压调节。同时调节电压一般同时会调整频率,所以就是动态电压频率缩放技术.(DVFS: Dynamic Voltage and Frequency Scaling). DVFS可以看作MSV的升级版。
- DVFS是需要软件根据不同的应用场景来选择不同的电压频率配置,如果更进一步,对不同模块的电压频率能够自适应的调节,那么就是自适应电压频率缩放(AVFS: Adaptive Voltage and Frequency Scaling). AVFS可以看作是DVFS的升级版。
- 如果有某个模块在有些场景下不使用了,我们可以关掉这个模块的电压,需要使用时候再打开,关断模块肯定是最省电的方式了。这就是电压关断技术(PSO: Power Shut Off)。PSO技术其实是电压调节的一种特例,也就是调节到0。PSO技术一般和MSV, DVFS,AVFS一起使用。
25/38数字电路的验证维度有哪些
A完备性
B复用性
C高效性
D满足性能
解:ABCD
-
完备性:该维度要求验证的充分。无论你从项目经理、系统人员、设计人员还是验证人员,大家谈验证首先提到的就是要“充分”。然而充分一词对于验证而言边界时模糊的,很难量化到什么时候才可以达到验证的完成标准。所以,作为一名验证经理,需要引入各种数据来综合量化出验证的进度,这其中包括了验证功能点的覆盖率,代码覆盖率,是否经过了低功耗验证流程(power aware verification),是否经过了跨时钟域检查等等。 通过数据量化,来对验证人员和验证经理增强足够信心来宣布某一个项目节点中,验证已经得到了“充分”的验证。当然,对于功能覆盖率部分,如何将功能描述文档充分理解,进而充分列出要测试的功能点并尽可能地细分出来,这需要系统人员、设计人员和验证人员的共同努力。同时,如何将抽象的验证计划转换到功能覆盖语言(SystemVerilog function coverage)需要验证人员具备该能力。
-
复用性:从项目的实际运用角度来看,复用性和完备性是同等重要的。没有人愿意会在下一个项目中将以前的验证环境做较大的更新,因为这意味着额外的资源消耗,包括时间、人力和项目进度的考虑。在硬件设计角度而言,通过标准总线协议,可以最大限度的讲模块之间实现相对独立和快速集成,所以对于目前项目进度不断缩紧的现状来看,一方面是市场的瞬息万变导致的,一方面也是由于SoC自身逐渐趋向于软件的快速周期迭代方式而成的。对于一个系列芯片而言,后续芯片的性能提高、功耗优化都是建立在前一代的基础上的,而这些不断地提高和优化具体到每一个硬件子系统而言,可能就是他们的存储大小、时钟快慢、动态电源开关、总线宽度、缓存深度来综合决定的,然而下一代硬件设计自身一般不会有第一代芯片的艰难历程(否则它也就称不上是系列芯片了)。 那么从硬件设计的角度来看,这些更新如果不会在逻辑上面有大的变动,那么带来的工作量是可以估计的。而从验证角度来看,我们也很自然地希望验证的工作量也不需要太大——可是事实并不一定是这样的。首先从芯片项目的集成性而言,设计人员相比较验证人员,在同一功能模块的稳定性是更高的,那么当一个验证人员在尝试阅读和修改上一个项目的验证代码时,就要看看他的运气。一般来讲,他的运气会跟上一个验证人员的代码风格有直接的关系……同时,验证人员在处理一些总线协议的时候要有意识引入参数来为日后的复用做好准备。而不断融合的验证方法学,走到今天,UVM(Universal Verification Methodology)之所以划分出不同的功能单元,实现小的颗粒度,提供快速插拔式的环境集成,也是为了复用性考虑的。
-
高效性:指的是用尽可能少的工作量来完成验证工作。在保证验证完备性的情况考虑下,实际上复用性和高效性会有存在冲突的可能。例如,验证人员会考虑如何“短平快”地在一个紧张周期内完成验证工作,但可能他不会采用UVM等方法学框架,也有可能他不会考虑将参数引入到验证环境中,因为这些“额外”的因素虽然是对复用性有帮助的,但是也会跟高效性有冲突。所以,验证人员需要针对不同的情况来在上述的五种维度之间做好平衡,至少需要保持一种意识,那就是工程学的执行阶段本身就是一种平衡,对于验证人员来讲,他需要作出的判断就是在每一个项目每一项验证任务中做好取舍,来给出一个合适的验证考量维度。甚至对于同一项验证任务而言,采取不同的验证策略也会有不同的完成效果。例如,一开始考虑采用随机约束的验证方法,那么单单就约束而言,它的约束一开始是比较窄合适,还是一开始比较宽宽合适?
这里我们再给出一张示意图来说明高效性实际上在不同的验证方法和同一个验证任务在不同状态时都需要有相应的变化。因为在开始阶段,考虑到设计不够完备而且尚未经历过验证,我们一开始的阶段称作基本功能验证阶段,这个阶段,我们会将随机约束域降低到基本范围,尽可能少的触碰到边界情况,而把重点放到如何先将各项基本功能都验证到。第二个阶段是在我们已经完成基本功能验证以后开始的完备功能验证,这时我们就可以逐渐放开随机约束域,而开发的速度跟合适能够设定最终的开放域范围需要验证人员充分考虑到各种合理的情形再做约束域的限定。而当了功能覆盖率一般上升到80%附近的时候,这就处于了最后的爬坡阶段,这个时候,如果再沿用之前广泛的约束域,那么会产生很多无效的随机种子,这些“无效”的随机种子基本对于剩下的验证覆盖率完善没有什么帮助,那么这个时候验证人员就需要通过理解设计本身和随机产生的约束两方面来考虑具体贡献覆盖率的测试序列,再进一步缩窄随机约束域,来定向(biasing)产生一些激励,对于最后的这一阶段,一种极端的情况就是将随机约束域缩到尽可能窄的情况,甚至和直接测试(directed test)没有什么区别。 -
高产出:指的是在一定的时间,可以调试、报告、帮助修正出多少个设计缺陷,以及可以建立多么完整的验证环境。多年来数字硬件设计(RTL级别)的基础并没有发生太多变化,同时EDA厂商提供的自动化工具又进一步提供了便利,提高的设计本身的可靠性。但是这一情况却并不适用于数字验证,因为EDA工具目前仍然只能作为辅助手段,例如提供更多方便的调试功能和接口,却不能也随之自动化帮助建立复杂的验证环境。这也就不难解释了2014年Wilson在功能验证领域的调查数据显示,今天在设计和验证领域面临着最大的挑战之一就是为快速的芯片产品和员工数量增长之间找到一个平衡点, 实现单位产出的提高。
-
代码性能:关于这一点要讲详细一点,需要专门开个话题。代码性能似乎也跟高效高产出有冲突的地方,因为对于验证代码的整洁性、复用性甚至一点点地美感都对于数字意义上的验证完备性没有直接联系,这也包括你的验证经理可能有好长时间都不会注意到你写的验证代码,除非有一天你验证的那个设计出了一个缺陷,而且是一个显而易见的缺陷却没有被发现,这可能才会引起验证经理的注意专门来访问可能是一团糟的代码结构。 但是每一位验证人员也需要记住一句台词“出来混迟早是要还的”,无论是你在看着别人写的验证代码没有注释、没有缩进、超长if-else判断语句等等这些让你已经无力吐槽是时刻,还是你因为项目紧张快速搭建验证环境和编写测试用例的时候没有考虑到“后来阅读者”和“你后来阅读”而偷的各种懒,相信我,时间会让你为此买单的。所以,作为一名验证人员,请在你写每一行代码的时候把它当做你日后行业名声的荣誉墙,尽管你还在迫于项目的压力快速建立环境疲于完成验证,但等到你有闲的时候会去再改善那些代码吗?不要再相信这些鬼话了,现在就去做吧!
26/38在验证中下列关于代码覆盖描述错误的是
A代码覆盖率包括语句覆盖率
B代码覆盖率包括条件覆盖率
C代码覆盖率包括功能覆盖率
D代码覆盖率达到100%说明所有Bug已清除
解:CD
27/38关于systemerilog中new操作的下列描述中,错误的是
A 它可以用来动态创建对象和对象数据
B使用它创建对象时调用构造函数
C new操作被定义成一个需要有返回类型的函数
D使用它创建对象数组时必须指定对象的初始值
解:D不懂
BD
B.用new创建对象是不用显式调用构造函数的,它自己会自动调用.
别的不会
28/38以下同步逻辑电路和异步逻辑描述正确的是()
A同步逻辑电路是时钟之间没有固定的因果关系,异步逻辑电路是各时钟之间有固定的因果关系
B同步逻辑是由时序电路(寄存器和各种触发器)和组合逻辑电路构成的电路,其所有的操作都是在严格的时钟控制下完成的。
C异步逻辑电路不同时钟域之间不需要进行时钟同步
D 异步逻辑可能存在多个时钟信号,或者不存在时钟信号,电路中一个逻辑的变化就会引起整个电路逻辑的变化。
解:BD
A,不是时钟之间,是输入输出之间吧
C,CDC
29/38超大规模集成电路计中,为了高速设计,采取以下哪些措施
A 流水线设计
B 并行化设计
C 资源共享
D 串行化设计
解:ABC
AB
A、流水线提高数据吞吐量、提高时钟频率(缩短了组合逻辑的时间)
BD、不说了
C、是节约面积吧
30/38竞争冒险现象可以怎样消除?
A 加入滤波电容
B引入同步机制
C不加选通信号
D增加冗余逻辑
解:ABD
在有竞争冒险存在的情况下,而负载又是对脉冲敏感的电路,那么就应设法消除。消除竞争冒险常用方法有:增加冗余项、接入滤波电容和引入封锁脉冲或选通脉冲等。
5.1 增加冗余项消除竞争冒险
增加冗余项的方法是通过在函数表达式中“加”上多余的“与”项或“乘”上多余的“或”项,使原函数不可能在某种条件下化成X+X或X·X的形式,从而消除可能产生的竞争冒险,冗余项的选择可用代数法或卡诺图法。
用增加冗余项的方法修改逻辑设计,可以消除一些竞争冒险现象。但是,这种方法的适用范围是有限的。增加冗余项,需增加额外电路,但增加了电路可靠性,如果运用得当,可以收到最理想的效果。
5.2 输出端并联电容器消除竞争冒险
竞争冒险所产生的干扰脉冲一般很窄。逻辑电路在较慢速度下工作时,可以在输出端并接一个不大的滤波电容。并用门电路的输出电阻和电容器构成低通滤波电路,对很窄的尖峰脉冲(其频率很高)起到了平波的作用。这时在输出端便不会出现逻辑错误。
接人滤波电容的方法简单易行,但输出电压波形随之变化,故只适用于对输出波形前后沿无严格要求的场合。
5.3 引入封锁脉冲消除竞争冒险
封锁脉冲是在输入信号发生竞争的时间内,引入一个脉冲将可能产生尖峰干扰脉冲的门封锁住,从而消除竞争冒险。封锁脉冲应在输入信号转换前到来,转换结束后消失。
5.4 加选通脉冲消除竞争冒险
选通脉冲是当电路输出端达到新的稳定状态之后,引人选通脉冲,从而使输出信号是正确的逻辑信号而不包含干扰脉冲。
引入封锁脉冲或者选通脉冲的方法比较简单,而且不增加器件数目。但这种方法有一个局限性,就是必须找到一个合适的封锁脉冲或选通脉冲。
5.5 用格雷码替代二进制代码消除竞争冒险,确保每一时刻只有一个代码变化
5.6 其它消除方法
可在电路输入端加入所有可能发生的状态变化的波形,观察输出端是否有尖峰脉冲。亦可通过在计算机上运行数字电路的模拟程序,迅速查出电路是否由于竞争冒险而输出尖峰脉冲。
这些方法对消除组合逻辑电路的竞争冒险现象是行之有效的。实际工作中可以根据不同情况选择合理的方法,可以取得满意的效果。
31/38下列关于Setup/Hold Time说法正确的是?
A如果DFF的Hold时间不满足,通常可以通过增加数据路径延时来解决
B如果DFF的Setup时间不满足,通常可以通过增加数据路径延时来解决
C如果DFF的Hold时间不满足,通常可以通过增加时钟路径延时来解决
D如果DFF的Setup时间不满足,通常可以通过增加时钟路径延时来解决
解:AD看公式
32/38下列数据类型中属于四状态类型的有哪些
A int
B logic
C bit
D time
解:BC
BD
先明确一点Verilog中的数据类型只有四状态!
1、四状态数据类型
四状态(4-state)默认值为x,但是线网在没有驱动的时候输出的是z,这一点特殊要记住!四状态数据类型:
wire/reg/logic
integer:32比特有符号数
time:64比特无符号数
注意事项:logic:logic类型只能有一个驱动,所以可以用它来查找网表中的漏洞。但有些信号如果本来就希望它有多个驱动,如双向总线,那么久需要定义为线网类型(Net),如wire。
四值状态的变量可以赋值为二值状态的变量,但需要注意 x 和 z 会转换成0
2、双状态数据类型
双状态(2-state)默认值为0。双状态数据类型:
bit:1比特无符号
byte:8比特有符号
short int:16比特有符号
int:32比特有符号
long int:64比特有符号
real:双精度浮点数
注意事项:最简单的双状态数据类型是bit,并且它是无符号的;其余四个(byte、shortint、int、long int)都是有符号的。
logic [7:0] x 与 byte x 并不等效,前者是无符号的,最大值为255;后者则是有符号的,最大值为127。 logic [7:0] x 与 byte unsigned x的写法是等效的,但是显然过于麻烦,在实际项目中我们多使用 logic [7:0] x的形式编写程序。
带符号的变量在随机化的时候多会产生意想不到的结果,这一点要特别注意。
双状态变量连接到DUT输出时务必要小心,因为DUT试图产生X或Z,这些值会被转换成双状态值,而Testbench代码永远发现不了。这些值被转换成了0还是1并不重要,重要的是要随时检查未知值的传播。
33/38低功耗电路实现的方法有
A 降低工作电压
B增加负载电容
C降低电路面积
D尽可能提高电路性能
解:ACD
AC提性能功耗上升(我以为提升性能是好的?)
34/38请找出以下总线中的串行总线
A AXI
B SDIO
C UART
D IIC
解:BC
BCD
35/38下列哪些方式可以减少亚稳态问题的影响
A 提升系统时钟频率
B 用反应更快的FF
C 架构上增加data toggle rate
D 改善时钟质量
解:BD
BCD
C是什么?data toggle rate 信号翻转率 不懂这个 翻转率高了对setup hold检查有影响吗?
感觉窗口还是那么大啊
改善亚稳态的方法:
1.降低系统时钟
2.用反应更快的FF
2.引入同步机制,防止亚稳态传播
3.改善时钟质量,用边沿变化快速的时钟信号
关键是器件使用比较好的工艺和时钟周期的裕量要大。
简答题(共3题,共30分)
36/38请判断如下说法是否正确,并针对错误描述具体原因?
1.可以通过两级触发器防止亚稳态传播,也可以用来同步多bit信号;
2.时钟域A的多bit信号一定要经过同步才能被时钟域B采用;
3.如果DFF的hold时间不满足,可以通过降低时钟频率来解决;
4.假定没有毛刺产生,异步复位信号可以不管时钟,只要复位信号满足条件,就能完成复位动作;
解:
1、错,不可以同步多bit ,因为多bit数据在传输过程中会有一个跳变过程,不同bit之间的变化时刻也不一样,可能会出现不存在的数据,多bit用握手或者异步fifo
2、对,假如a和b的时钟不是同步的就得做同步处理
3、错,hold check和时钟频率没关系
4、错,有recovery time 和remove time要求,不然会亚稳态
37/38在一个CPU系统中,有2个Mster通过个2x1的AXI总线访问一个Slave,简述如何构造验证场景来进行验证,并保证验证的完备性
不会,不懂验证
38/38
1.请列出SRAM与DRAM的不同之处?
1、数据存储不同:
SRAM不需要刷新电路即能保存它内部存储的数据。
而DRAM(Dynamic Random Access Memory)每隔一段时间,要刷新充电一次,否则内部的数据即会消失。
2、体积不同:
相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积。
同样面积的硅片可以做出更大容量的DRAM。
3、特点不同:
SRAM也有它的缺点,即它的集成度较低,功耗较DRAM大 ,通常DRAM是有一个异步接口的,这样它可以随时响应控制输入的变化。
同步动态随机存取内存(synchronous dynamic random-access memory,简称SDRAM)是有一个同步接口的动态随机存取内存(DRAM)。
由于在现实中晶体管会有漏电电流的现象,导致电容上所存储的电荷数量并不足以正确的判别数据,而导致数据毁损。因此对于DRAM来说,周期性地充电是一个无可避免的要件。由于这种需要定时刷新的特性,因此被称为“动态”存储器
最后,我们总结一下区别:
SRAM成本比较高(6个场效应管组成一个存储单元)
DRAM成本较低(1个场效应管加一个电容)
SRAM存取速度比较快
DRAM存取速度较慢(电容充放电时间)
SRAM一般用在高速缓存中
DRAM一般用在内存条里
RAM 随机存储器:存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。
SRAM 表示静态态随机存取存储器:因此只要供电它就会保持一个值。一般而言,SRAM 比DRAM 要快,这是因为 SRAM 没有刷新周期。每个 SRAM 存储单元由 6 个晶体管组成,而DRAM 存储单元由一个晶体管和一个电容器组成。成本更高
DRAM 表示动态随机存取存储器:这是一种以电荷形式进行存储的半导体存储器。DRAM中的每个存储单元由一个晶体管和一个电容器组成。数据存储在电容器中。电容器会由于漏电而导致电荷丢失,因而 DRAM 器件是不稳定的。为了将数据保存在存储器中,DRAM 器件必须有规律地进行刷新。
SDRAM 同步动态随机存储器:意思是指理论上其速度可达到与 CPU 同步。
DDR SDRAM(Dual Date Rate SDRAM):简称 DDR,也就是“双倍速率 SDRAM“的意思。DDR 可以说是 SDRAM 的升级版本,DDR 在时钟信号上升沿与下降沿各传输一次数据,这使得 DDR 的数据传输速度为传统 SDRAM 的两倍。
ROM 指的是“只读存储器”,即 Read-Only Memory。这是一种线路最简单半导体电路,通过掩模工艺, 一次性制造,其中的代码与数据将永久保存(除非坏掉),不能进行修改。
==PROM 指的是“可编程只读存储器”==既 Programmable Red-Only Memory。这样的产品只允许写入一次,所以也被称为“一次可编程只读存储器”(One Time Progarmming ROM,OTP-ROM)。PROM 在出厂时,存储的内容全为 1,用户可以根据需要将其中的某些单元写入数据 0(部分的 PROM 在出厂时数据全为 0,则用户可以将其中的部分单元写入,以实现对其“编程”的目的。
EPROM指的是“可擦写可编程只读存储器”,即Erasable Programmable Read-Only Memory。它的特点是具有可擦除功能,擦除后即可进行再编程,但是缺点是擦除需要使用紫外线照射一定的时间。
EEPROM 指的是“电可擦除可编程只读存储器”,即 Electrically Erasable Programmable Read-Only Memory。它的最大优点是可直接用电信号擦除,也可用电信号写入。EEPROM 不能取代 RAM 的原因是其工艺复杂,耗费的门电路过多,且重编程时间比较长,同时其有效重编程次数也比较低。
Flash memory 指的是“闪存”,所谓“闪存”,它也是一种非易失性的内存,属于 EEPROM 的改进产品。它的最大特点是必须按块(Block)擦除(每个区块的大小不定,不同厂家的产品有不同的规格), 而 EEPROM 则可以一次只擦除一个字节(Byte)。
2.请列出一般系统中的Memory hierarchy.并解释系统中为何需要将存储器分层
现代计算机系统的存储系统是分层的,主要有六个层次:
(1)CPU寄存器
(2)On-chip L1 Cache (一般由static RAM组成,size较小,例如16KB)
(3)Off-chip L2 Cache (一般由static RAM组成,size相对大些,例如2MB)
(4)Main memory(一般是由Dynamic RAM组成,几百MB到几个GB)
(5)本地磁盘(磁介质,几百GB到若干TB)
(6)Remote disk(网络存储、分布式文件系统)
而决定这个分层结构的因素主要是:容量(capacity),价格(cost)和访问速度(access time)。位于金字塔顶端的CPU寄存器访问速度最快(一个clock就可以完成访问)、容量最小。金字塔底部的存储介质访问速度最慢,但是容量可以非常的大。
总结
别人的展锐题
笔试——紫光展锐_weixin_44348260的博客-CSDN博客1、systemverilog 中以下语句哪一个表示等待至少一个进程完成,然后再执行后继语句?A、fork…join…anyB、fork…join…noneC、fork…join…oneD、fork…join知识拓展:2、Linux常用命令中,下列哪个用于修改文件所属群组A、chownB、catC、chmodD、chgrp解析:cat是concat enate的简写,cat命令用于连接文件或标准输入并打印;chmod=change mode,改变读写模式chown=changhttps://blog.csdn.net/weixin_44348260/article/details/119491983FPGA/IC笔试——紫光展锐 - 一曲挽歌 - 博客园一、单选题(共26题,每题2分,共52分) 1.[单选题]Verilog语言与C语言的区别,不正确的描述是( C ) A.Verilog语言可实现并行计算,C语言只是串行计算; B.Verilog语言
https://www.cnblogs.com/yiquwange/p/15207254.html?ivk_sa=1024320u