Verilog:笔试面试常考易错点整理

您所在的位置:网站首页 易点云面试 Verilog:笔试面试常考易错点整理

Verilog:笔试面试常考易错点整理

2024-07-16 07:15| 来源: 网络整理| 查看: 265

1.Verilog为什么适合描述硬件设计?always块间是并行的,符合硬件中电路并行计算的特性always时钟触发的特性,符合寄存器的行为Verilog是一种自顶向下的层次化设计方法,能够将复杂的大型数字系统划分为规模较小且功能相对简单的单元电路,从而加速大型数字系统的设计、调试等工作Verilog的行为级描述方法可以简化硬件电路的设计,可借助于高级语言的精巧结构Verilog支持开关级、门级、RTL级、算法级、系统级设计2.阻塞赋值和非阻塞赋值的区别?阻塞赋值的操作符为=,阻塞的概念是指在同一个always块中,其后面的赋值语句从概念上是在前一句赋值语句结束后在开始赋值的,阻塞赋值在语句结束后立即完成赋值操作,可以认为是顺序执行,用于组合逻辑的设计;非阻塞赋值的操作符为vmap->vlog->vsim->run23.同步通信和异步通信有什么区别?UART、SPI、I2C、I2S协议对比?同步通信需要相同频率的时钟,逐字符发送接收,发一个收一个,收一个发一个,不能有间隙。异步通信可以任意间隙,接受端随时准备,发送端任意时刻发送 ,需要加停止位和开始位。UART (1)两线(TX、RX) (2)异步进行,有标准波特率 (3)收发独立,全双工 (4)通信双方地位平等 (5)无应答机制,可配置奇偶校验位 (6)速度较慢 (7)数据传输低位在前,高位在后SPI (1)四线(SCLK、MOSI、MISO、CS) (2)同步进行 (3)收发独立,全双工 (4)主从通信机制,由主设备产生SCLK (5)无应答机制 (6)速率可达几Mbps (7)数据传输高位在前,低位在后I2C (1)两线(SCL、SDA) (2)同步进行 (3)同一时间只能由一方发送或接受数据,半双工 (4)多主控总线,任何一个设备都能像主控器一样工作,并控制总线 (5)具有应答机制 (6)传输速率有标准模式(100 kbps)、快速模式(400 kbps)和高速模式(3.4 Mbps) (7)数据传输高位在前,低位在后I2S 主要用来传输音频信号 (1)三线(BIT_CLK、SDATA、WS),WS用来选择左右声道 (2)同步进行 (3)半双工 (4)主从通信机制,由主设备产生BIT_CLK、SDATA、WS (5)无应答机制 (6) (7)数据传输高位在前,低位在后24.>>和>>>的区别?>>是逻辑右移,左边补0>>>是算术右移,考虑符号位,如果是0,则左边补0,如果是1,则左边补125.==和===的区别?两者都是相等或比较运算符。“==”检查二值逻辑相等,而“===”运算符测试四值逻辑相等。使用“==”比较二值逻辑,如果出现X或者Z,则结果为X。使用“===”比较四值逻辑,如果出现X或Z,则结果为0或1,能够正确的进行比较。26.奇偶检验?奇偶校验位是在一串二进制码的最后添加的一位,它使得整个二进制串的1的个数为奇数或者偶数。因此奇偶校验分为两种,奇校验和偶校验。计算校验位需要对二进制码中的1进行计数。如果1的数量为奇数,并且使用偶校验,则校验位为1,使得整体1的个数为偶数。如果1的数量为偶数,并且使用偶校验,则校验位为0,使得整体1的个数为偶数。奇校验类似。奇偶校验位可以通过对所有的比特位进行异或得到。27.写一段代码,用半加器组成全加器?代码语言:javascript复制module half_adder(input_0, input_1, sum, carry); input input_0, input_1; output sum, carry; assign sum = (input_0)^(input_1); assign carry = (input_0)&(input_1); endmodule module full_adder(input_0, input_1, input_2, sum, carry); input input_0, input_1, input_2; output sum, carry; reg sum_intermediate, carry_intermediate_0, carry_intermediate_1; half_adder ha1(input0,input1,sum_intermediate,carry_intermediate_0); half_adder ha2(sum_intermediate,input2,sum,carry_intermediate_1); assign carry = (carry_intermediate_0)|(carry_intermediate_1); endmodule 28.FPGA的基本结构?

FPGA由6部分构成,分别为可编程输入/输出单元、基本可编程逻辑单元、丰富的布线资源、嵌入式块RAM、底层嵌入功能单元、内嵌专用硬核

可编程输入/输出单元:可通过配置适应不同的电器标准和I/O物理特性;可调整阻抗特性、输出驱动电流等。基本可编程逻辑单元:由LUT和寄存器构成,通过LUT来实现组合逻辑丰富的布线资源:包括全局性的专用布线资源、长线资源、短线资源等;嵌入式块RAM:可配置为单端口RAM、双端口RAM、CAM、FIFO等存储结构底层嵌入式功能单元:指通用程度较高的嵌入式功能块,如PLL、DSP等;内嵌专用硬核:通用性较弱的硬核,并不是每个FPGA都有的29.模块划分的依据以及注意事项?

划分依据:

按照逻辑功能划分:如IO、Memory、PLL、CORE、JTAG等,CORE中继续按照功能划分,这样做的好处,一个是可以很好的复用资源,另一个是更利于综合工具优化时序按照设计大小和规模划分:模块大小适中,设计大小一般设为一晚上的运行时间,白天人工处理和处理结果。模块太大,对综合工具和计算机配置要求高,模块太小,会造成层次过多,不利于综合工具优化按照时钟域划分:除了跨时钟域同步模块,其余模块每个仅有一个时钟,有利于时序约束和综合工具优化

注意事项:

顶层模块应只是各个子模块的连接,不能有胶合逻辑寄存模块的输出Pad与core分离,I/O、三态都应在顶层描述结构层次不能太多30.高频设计中,可以采用哪些手段提供系统工作频率?流水线寄存器配平关键路径优化串转并(如RCA改成超前进位加法器)树形结构迟滞信号后移DC逻辑优化中的flatten采用先进工艺31.如何提升设计的性能?

性能可以由带宽、吞吐率、时延来评估

空间并行:面积换性能(更宽的总线等等)、DC逻辑优化中的flatten(将复杂的逻辑运算转换成积之和的形式)时间并行:流水线(充分调度资源,使得尽可能少的处于闲置状态)、行波进位加法器改成超前进位加法器算法和硬件的优化,硬件优化比如工艺、关键路径优化32.面积优化方法?资源共享串行化后端:对正slack的路径,移除buffer或者downsize33.If-else和case综合出的电路区别?if-else,assign a = c? b : d这种写法会综合出MUXcase,assign a = c&b | ~c&d这种写法会综合出AOI


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3