【开卷】第三期:2022乐鑫数字芯片提前批笔试(含答案)
选择题
A sv 中可以用 logic 代替 Verilog 中的 wire 和 reg 类型
B sv 中, 定义成 reg 的信号会被综合成触发器
C sv 中的 function 语言不可被综合
D 其他都不正确
E sv 是提供给验证使用的, 因此其不能被综合
答案:A
解析:
A.数据类型logic是SV中引入的新的数据类型,其与Verilog存在一定的区别。Verilog需要对reg和wire类型进行明确的识别,以便后端综合。而SV并不关心综合类型,如果在验证环境logic即可代替reg和wire类型。
知识点:
数据类型分类:
按四值逻辑和二值逻辑:integer, reg, logic, net-type
按有无符号:byte, shortint, int, longint, bit
知识点:
task和function:
共同点:
1.verilog中task和function是相同的。
2.将复杂代码分割成小段落,便于理解和调用,简化程序,功能单一;
3.端口参数默认都是输入,除非声明其他类型;
4.数据类型默认是logic,除非声明为其他类型;
5.可以存在多个语句,不用begin…end做开始结尾;
6.wire类型数据不可以在端口使用;
7.通过引用、值、名称、位置传递参数值;
不同点:
sv中增加的使用:在静态task和function中声明动态变量,以及在动态task和function中声明静态变量。
1.function不能消耗仿真时间;task可以消耗仿真时间;比如function不能带有#100的时延语句、不能有@(posedge clk)、不能有wait(ready)的阻塞语句。
2.function不能调用task;task可以调用function或task;注意:sv中允许function调用task,但只能在fork…join_none生成的线程中调用。
3.function可以使用void表示不返回结果;task不使用void表示不返回结果;
4.function只能返回一个值;注意:task无返回值;verilog fucntion必须要有一个返回值;sv可以使用void’(call_function(params))避免返回值。
A uvm_test
B uvm_root
C uvm_top
D uvm_component
答案:B
解析:
uvm_root 是uvm的顶层实例扮演了一个top-level and phase controller 的作用,对于component来说。该类不需要用户实例化,他是一个自动实例化了的类,用户直接通过uvm_top调用。因此,uvm_root是最顶层的部件。
知识点:常用的uvm_component:
Uvm_driver:所有driver都要派生uvm_driver。Driver的功能主要就是向sequencer索要sequence_item(transaction),并把sequence_item里的信息驱动到DUT的接口上。相当于完成了transaction级别到DUT能够接受的pin级别信息的转变。
Uvm_monior:所有monitor都要派生子uvm_monitor。Monitor从DUT的pin上接收数据,并且把接收到的数据转换成transaction级别的sequence_item,并把转换后的数据发送给scoreboard,供scoreboard比较。
Uvm_sequencer:所以的sequencer都要派生自uvm_sequencer。其功能1就是组织管理sequence,当driver要求数据时,他就把sequence生成sequence_item转发给driver。
Uvm_scoreboard:一般的scoreboard都要派生自uvm_scoreboard。其功能就是比较reference model和monitor分别发送来的数据,根据比较结果判断DUT是否正确。
Reference model:reference model直接派生自uvm_component。其作用就是模仿DUT,完成与DUT相同的功能,可以直接使用systemverilog的特性,或者可以通过DPI等接口调用其它语言来完成与DUT相同功能。
Uvm_agent:所以agent都要派生自uvm_agent。只是把driver和monitor封装在一起,根据参数来决定是只实例化monitor还是要实例化driver和monitor。
Uvm_env:所有env都要派生自uvm_env。把验证平台固定不变的component封装在一起。这样在要跑不同case时,只要在case中实例化一个env就可以。
Uvm_test:所有的case都要派生自uvm_test。Case之间差异很大,所以从uvm_test派生出来的类各不同。任何一个派生的case都要实例化env,只有这样才能正常传数。
A 高通, 抗混叠滤波
B 低通, 抗周期延拓
C 低通, 抗混叠滤波
D 高通, 抗周期延拓
答案:B
解析:低通滤波就是去掉高频信号,留下低频信号,这就是低通滤波。
相反,高通滤波就是去掉低频信号,留下高频信号,这就是高通滤波。
知识点:
数字信号的生成-上采样和下采样。
同类题:
在对信号做降采样前添加滤波器,一般需要添加什么样的滤波器,完成什么功能?
A 高通,抗周期延拓.
B 高通,抗混叠滤波.
C 低通,抗周期延拓.
D 低通,抗混叠滤波.
答案:D
解析:为解决频率混叠,在对模拟信号进行离散化采集前,采用低通滤波滤除 高于1/2采样频率的频率成分。实际仪器设计中,这个低通滤波器的截止频率(fc)为:截止频率(fc)=采样频率(fz)/2.56,在进行动态信号测试中测量仪器必须具有抗混叠滤波功能。
A SPI
B USB
C UART
D IIC
答案:C
解析:(1) SPI——同步通信;串行通信;全双工;主从通信(某一时刻可以出现多个从机,但只能存在一个主机,主机通过片选线来确定要通信的从机)。
(2) USB——同步通信;通用串行总线。
(3) UART——Universal Asynchronous Receiver/Transmitter,通用异步收发器;异步通信;串行通信;全双工;对等总线,没有仲裁机制,所以只能挂载两个同时收发数据的设备,双方都可以发送和接收。
(4) I2C——同步通信;串行通信;半双工;主从通信(总线上支持多个主机和多个从机,总线上任何能够进行发送/接收数据的设备都可以占领总线。当然,任意时间点上只能存在一个主控。多主控,主器件同时争夺总线控制权时,可仲裁)。
知识点:
总线是两个模块之间通信的线路,协议是双方遵循的规则,总线协议就是两个模块在通信线路上传输信息需要遵守的规则,双方按照协议来收发信息。
1.总表
1.1同步通信与异步通信
同步总线:指互联的部件或设备均通过统一的时钟进行同步,即所有的互联的部件或设备都必须使用同一个时钟(同步时钟),在规定的时钟节拍内进行规定的总线操作,来完成部件或设备之间的信息交换。
异步总线:指没有统一的时钟而依靠各部件或设备内部定时操作,所有部件或设备是以信号握手的方式进行,即发送设备和接受设备互用请求(request)和确认(acknowledgement)信号来协调动作,总线操作时序不是固定的。因此,异步总线能兼容多种不同的设备,而且不必担心时钟变形或同步问题使得总线长度不受限制。
串行与并行通信
1.串行通信指计算机与I/O设备之间数据传输的各位按顺序依次一位接一位进行传送。通常数据在一根数据线或一对差分线上传输。
2.并行通信是指计算机与I/O口设备间通过多条传输线交换数据,数据的各位同时进行传送。
3.串行通信传输速度慢,但使用传输设备成本低,适合于远程通信;并行通信的速度快,但传输设备成本高,适合于近距离通信。
串行通信数据传送方向
1.单工:是指数据传输仅能沿一个方向,不能实现反向传输。
2.半双工:是指数据传输可以沿两个方向,但需要分时进行传输。
3.全双工:是指数据可以同时进行双向传输。
2. 通信协议介绍
2.1 IIC
I2C(IIC,Inter-Integrated Circuit),两线式同步串行总线。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。其总线通过上拉电阻与电源相连接。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上,IIC是半双工通信方式。每个接到I2C总线上的器件都有唯一的地址。其中,主动发起操作的一方为主机Master,另外一方为从机SLAVE。
2.1.1 IIC通信协议
(1)空闲状态I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。
(2)起始信号与停止信号起始信号:当SCL为高期间,SDA由高到低的跳变。停止信号:当SCL为高期间,SDA由低到高的跳变。
(3)应答信号ACK应答ASK:是一个低电平信号。非应答NASK:是一个高电平信号,也许,叫做应答非更合适。两个信号的明显不同是来源不同。应答信号是当前从器件发出的,而非应答信号是由当前主器件发出,再者方向是相反的
(4)数据有效性数据在SCL的上升沿到来之前就需准备好,并在在下降沿到来之前必须稳定。也就是要求数据在SCL高电平期间保持稳定。
传输方式:开始信号+7位设备地址+R/W+ASK+8bit数据+ASK+8bit数据+NASK+停止信号
数据传输开始时,需要发送一个起始信号;每8bit数据传输结束,都需要一个ACK。数据传输结束后,需要发送一个终止信号;起止信号都有Master发出,而ACK则可能由Master或者SLAVE来发出。
2.2 SPI
SPI(Serial Peripheral Interface)就是串行外围设备接口,是一种同步串行总线,由一个主设备和一个或多个从设备组成。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,4根线:
MISO:该引脚用于在SPI模块配置为从器件时将数据传输出SPI模块,并在配置为主器件时接收数据。
MOSI:该引脚用于在SPI模块配置为主器件时将数据传输出SPI模块,并在配置为从器件时接收数据。
SCLK:该引脚用于输出SPI传输数据或接收时钟的时钟。
SS:该引脚用于将选择信号从SPI模块输出到另一个外设,当配置为主机时,将其作为数据传输进行,当SPI配置为从机时,它用作接收从机选择信号的输入。
四条信号线:分别为 SDI(串行数据输入),SDO(串行数据输出),SCK(串行移位时钟),SS(片选)。
片选:单片机学科词汇,可以理解成选片。多种芯片挂在同一总线上(像电脑里很多外设都是挂在总线上),但我们有时候需要对其中特定的某个芯片进行数据、地址或命令的独立传输,此时,我们需要有一个信号来告诉挂在总线上的芯片们,这些数据、地址是传给哪个芯片的。那这样的话,其他芯片就会对这些信号“漠不关心”,而目标芯片就知道这些数据是传给自己的从而做出反应。这个信号就叫做 片选信号 CS(chip select)或SS(slave select)。片选这个词即由此而来,指通过设置 跳线 ,利用与门、或门、非门的组合来决定到底是哪几部分进入工作状态。
2.2.1 SPI通信协议
(1)SPI总线可以实现多SPI设备互相连接。提供时钟的SPI设备为主设备(Master),其他设备为从设备(Slave)。SCLK信号线只由主设备控制,从设备不能控制信号线。
(2)在SPI总线上,某一时刻可以出现多个从机,但只能存在一个主机。主机通过片选线来确定要通信的从机。这就要求从机的MISO口具有三态特性,使得该口线在器件未被选通时表现为高阻抗。
(3)主从设备间可以实现全双工通信,收发独立,操作简单,数据传输速率较高,但需要占用主机较多的口线(每个从机都需要一根片选线),而且只支持单个主机,没有指定的流控制,没有应答机制确认是否接收到数据。
(4)普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。也就是说,主设备通过对SCK时钟线的控制可以完成对通讯的控制。
杠cs表示片选信号
由于主从设备无应答机制,并且主设备通过控制sck时钟线来完成传输数据,所以只有当时钟跳变时,才传输数据。
2.3 UART
UART(Universal Asynchronous Receiver and Transmitter)通用异步收发器, 是一种通用串行数据总线,用于异步通信。该总线是一种低速的,全双工,双向通信总线。
2.3.1 UART通信协议
(1)起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。
(2)数据位:紧接着起始位之后。数据位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。
(3)奇偶校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。
(4)停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。
(5)空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。
(6)波特率:数据传输的速率。有以下几个档位:300、600、1200、2400、4800、9600、19200、38400、43000、56000、57600、115200。在数据传输和接收双方,需要预先统一波特率,以便正确的传输数据。
2.4 CAN
CAN(Controller Area Network)控制器局域网总线,是一种用于实时应用的串行通讯协议总线。
2.4.1 工作原理
1.CAN总线没有主从节点之分,所有CAN总线上的节点都是地位等价的。当CAN总线上的一个节点发送数据时,它以报文的形式广播给网络中的而所有节点;这样对于每个节点来说,无论数据是否发给自己,都对其进行接收。
2.CAN总线每组报文开头的11位字符为标识符,定义了报文的优先级;在同一个总线中,标识符是唯一的,不可能有两个节点发送具有相同标识符的报文。当然接收节点也会根据标识符来判断是否接收这帧信息,一般称这项技术为报文滤波技术。
3.CAN总线接收节点可以通过远程数据请求发送远程帧请求发送节点发送相应的数据,回应节点传送的数据帧与请求数据的远程帧具有相同的标识符。
4.CAN总线的优先权由发送数据报文中的标识符决定报文占用总线的优先权;标识符越小,优先权越高。
5.CAN总线的仲裁机制:只要总线空闲,任何节点都可以向总线发送报文。如果有两个或两个以上的节点同时发送报文,就会引起总线访问碰撞。通过使用标识符逐位仲裁可以解决这个碰撞问题。而且当具有相同标识符的数据帧和远程帧同时发送时,数据帧优先于远程帧。
6.目前CAN总线通信协议仅仅包括OSI七层互联参考模型中的数据链路层和物理层。
2.4.2 CAN通信协议
显性与隐性电平的解释:
CAN的数据总线有两条,一条是红色的CAN_High,一条是黑色的CAN_Low。当没有数据发送时,两条线的电平一样都为2.5V,称为静电平,也就是隐性电平。当有信号发送时,CAN_High的电平升高1V,即3.5V,CAN_Low的电平降低1V,即1.5V。
按照定义的:
CAN_H-CAN_L < 0.5V 时候为隐性的,逻辑信号表现为"逻辑1"- 高电平。
CAN_H-CAN_L > 0.9V 时候为显性的,逻辑信号表现为"逻辑0"- 低电平。
2.4.3 数据传输
CAN总线传输的是CAN帧,CAN的通信帧分成五种,分别为数据帧、远程帧、错误帧、过载帧和帧间隔。
数据帧根据仲裁段长度不同分为标准帧(2.0A)和扩展帧(2.0B)
帧起始
由一个显性位(低电平)组成,发送节点发送帧起始,其他节点同步于帧起始;
帧结束
由7个隐形位(高电平)组成。
仲裁段
只要总线空闲,总线上任何节点都可以发送报文,如果有两个或两个以上的节点开始传送报文,那么就会存在总线访问冲突的可能。但是CAN使用了标识符的逐位仲裁方法可以解决这个问题。
CAN总线控制器在发送数据的同时监控总线电平,如果电平不同,则停止发送并做其他处理。如果该位位于仲裁段,则退出总线竞争;如果位于其他段,则产生错误事件。
控制段
控制段共6位,标准帧的控制段由扩展帧标志位IDE、保留位r0和数据长度代码DLC组成;扩展帧控制段则由IDE、r1、r0和DLC组成如图17所示。
数据段
一个数据帧传输的数据量为0~8个字节,这种短帧结构使得CAN-bus实时性很高,非常适合汽车和工控应用场合。
数据量小,发送和接收时间短,实时性高,***扰的概率小,抗干扰能力强。
CRC段
CAN-bus使用CRC校验进行数据检错,CRC校验值存放于CRC段。 CRC校验段由15位CRC值和1位CRC界定符构成。
ACK段
当一个接收节点接收的帧起始到CRC段之间的内容没发生错误时,它将在ACK段发送一个显性电平。
A 静态逻辑
B 组合逻辑
C 动态逻辑
D 时序逻辑
答案:B
解析:
组合逻辑
输出只是当前输入逻辑电平的函数(有延时),与电路的原始状态无关的逻辑电路。也就是说,当输入信号中的任何一个发生变化时,输出都有可能会根据其变化而变化,但与电路目前所处的状态没有任何关系。
时序逻辑
输出不只是当前输入的逻辑电平的函数,还与电路目前所处的状态有关的逻辑电路。
动态逻辑和静态逻辑大概是来混淆的。
A 抽检 netlist 是否和 RTL 功能一致
B 抽检电路中是否出现有害的 glitch
C 抽检时序是否有违规
D 抽检电路中是否存在亚稳态
答案:B
解析:
前仿后仿都检测功能的正确性。A正确
前仿:关注RTL在功能上是否正确(符合设计)
后仿:关注电路在各种工作条件下,插入了延时后,功能是否依然正确。
C,D正确是因为后仿是为了检测时序的正确性
知识点:
后仿作用:
检查时序约束(SDC)的完备性——防止约束的遗漏
检查异步电路的时序——STA工具无能为力
检查网表的完备性——防止综合、布局布线过程中的意外
为后续流程如功耗(Power)分析、压降(IR Drop)分析提供波形——更准确
测试向量的仿真——只有门级网表才包含扫描链
A 信号经过两级触发器即可完成异步信号的传递
B 只要信号传递的两端时钟频率不相等, 即认为是异步信号
C 异步复位信号需要经过同步处理后再使用是安全的
D 异步 FIFO 中使用格雷码传递异步计数器可以保证每一拍传递的数据都是准确的
答案:C
解析:
A.可能经过两级触发仍然出现亚稳态情况,经过两级只能说降低了亚稳态出现的可能性
B.若时钟频率不相同,但相位相同,仍然是同步信号,例如,原始频率相同的二分频和四分频
D.异步FIFO不能保证每拍数据都是正确的,但是输出数据均为正确的。
知识点:跨时钟域处理、异步FIFO
跨时钟域处理
1.异步时序定义
异步时序设计指的是在设计中有两个或以上的时钟, 且时钟之间是同频不同相或不同频率的关系。而异步时序设计的关键就是把数据或控制信号正确地进行跨时钟域传输。
2. 亚稳态定义
亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。
2、单bit信号跨时钟域的传输:
(1)亚稳态不能从根本上消除,但可以通过采取一定的措施使其对电路造成的影响降低;
(3)慢到快:双锁存器电平同步器(多级寄存器):一个信号在过渡到另一个时钟域时,如果仅仅用一个触发器将其锁存,那么时钟采样的结果将可能是亚稳态,这时用双寄存器锁存数据,将会降低亚稳态出现的概率。优点:结构简单、易于实现;缺点:增加了触发器延迟、当快时钟域转到慢时钟域时,容易造成慢时钟采样丢失。所以该方法常用于慢时钟域转到快时钟域。
(4)快到慢:采用同步器:
1边沿检测同步器检测一个单bit信号的边沿。适用于慢时钟采样快时钟:输入数据的宽度必须比一个接受时钟周期加上一个同步触发器的hold时间要长,最安全的就是两个同步周期宽度。
2脉冲检测同步器:从某个时钟域去除一个单时钟宽度脉冲,然后再新的时钟域中建立另一个单时钟宽度的脉冲。适用于快时钟采样慢时钟。
3. 多bit数据流跨时钟域的传输
(1)数据流与指示信号的区别:数据流大多具有连续性(背靠背传输),数据流要求信号具有较快的传输速度。
(2)数据流的跨时钟域传输:通常采用SRAM和异步FIFO进行传输。
异步FIFO
1.定义:FIFO(first in first out)是一种先入先出的存储结构,与普通存储器(RAM)的区别在于它没有外部读写地址线。使用非常简单2、使用方式:顺序写入数据,顺序读出数据,数据地址由内部读写指针自动加1完成,不能像RAM那样可以有地址线决定读取或写入某个指定的地址。3、异步FIFO:在IC设计的过程中,模块与模块之间的多时钟情况已经不可避免,数据在不同时钟域之间的传输很容易引起亚稳态,此时需要使用异步FIFO来跨时钟域。
a. 双端口RAMb. 读地址模块c. 写地址模块d. 跨时钟模块,产生空/满信号
A 单 bit 信号经两级 D 触发器同步后即可进行跨时钟域传递
B 采用单一时钟的电路不会产生亚稳态
C 异步 FIFO 的两个时钟频率相同也可以正常工作
D 跨时钟域电路当中的亚稳态无法消除
答案:D
解析:与上同
A 信噪比
B 噪声功率
C 语音清晰度
D 误码率
答案:D
知识点:数字通信系统的性能指标
(1)信息传输速率
信道的传输速率通常以每秒所传输的信息量来衡量。信息量是一种消息多少的一种衡量。消息的不确定性程度越大,则其信息量越大。信息传输速率是指每秒传输的信息量。信息论中已经定义信源发出信息量的度量单位是"比特",所以信息传输速率的单位为比特每秒"bit/s"。
(2)符号传输速率
符号传输速率也叫信号速率或者码元速率,指单位时间内所传输的码元数目,单位为"波特(Bd)"。这里的码元可以是多进制的,也可以是二进制的。符号速率不管传输的信号为多少进制,都代表每秒钟所传输的符号数。对于信息传输速率,则必须折合为相应的二进制码元来计算。
符号速率与信息传输速率转换关系:
R = N * log2 (M);
M:符号的进制数
N :符号传输速率
R :信息传输速率
(3)频带利用率
在比较不同的数字通信系统的效率时,单看信息传输速率是不够的,或者说即使两个系统的信息传输速率相同,他们的效率也可能不同,因此还要看传输这种信息所占信道频带的宽度。通信系统所占用的带宽越宽,传输信息的能力应该越大,所以 用来衡量数字通信系统传输效率的指标(有效性)应当是单位频带内的传输速率,对于二进制传输时,可表示为:
(4)可靠性指标
衡量数字通信系统可靠性的 指标是误码率。在传输过程中发生误码的码元个数与传输的总码元数之比,称作误码率。这个指标是多次统计结果的平均量,所以这里指的是平均误码率。误码率的大小由通路的系统特性和信道质量决定,如果通路的系统特性和信道特性都是高质量的,则系统的误码率较低。
提高信道信噪比(信号功率/噪声功率),缩短中继段距离信噪比可以提高,从而使误码率减少。
Input [3:0] in;
output [3:0] out;
wire [3:0] a,b;
assign a=in<<1;
assign b=in>>3;
assign out=a|b;
A 对输入信号 in 先右移 3 位, 再左移 1 位
B 对输入信号 in 循环左移 1 位
C 对输入信号 in 循环右移 3 位
D 对输入信号 in 先左移 1 位,再右移 3 位
答案:BC都是对的
解析:随便假设个数试试
填空题
知识点:
(1)逻辑相等:两个操作数逐位比较,如果两个进行比较的位是不定态‘x’或者高阻态’z’,则输出x
$displayb ( 4’b0011 == 4’b1010 ); // 0
$displayb ( 4’b0011 != 4’b1x10 ); // 1
$displayb ( 4’b1010 == 4’b1x10 ); // x
$displayb ( 4’b1x10 == 4’b1x10 ); // x
$displayb ( 4’b1z10 == 4’b1z10 ); // x
(2)逻辑全等
$displayb ( 4’b01zx === 4’b01zx ); // 1
$displayb ( 4’b01zx !== 4’b01zx ); // 0
$displayb ( 4’b01zx === 4’b00zx ); // 0
$displayb ( 4’b01zx !== 4’b11zx ); // 1
解析:太简单
温度对数字IC芯片阈值电压Vt是有影响的,温度升高引起Vt下降。阈值电压Vt下降使芯片速度加快,但通常温升导致迁移率下降更快,总的影响是温度升高速度变慢
芯片供电电压降低后,芯片会变慢,电压升高时,芯片会变快。
综上所述,工艺(Process)、电压(Voltage)、温度(Temperature)对IC器件功能和性能均有影响,即PVT的影响,芯片厂家一般会进行芯片级的PVT测试。
always@(posedge clk)
begin
a=0;
a<=1;
$display(“%0b”,a);
end
答案:0
知识点:阻塞和非阻塞的区别,0b和b的区别
答案:不确定
收录各大芯片公司笔试真题