诺瓦科技2022数字IC设计提前批笔试

单选题(每题2分 共20题)

1.状态机的编码风格包括一段式、两段式和三段式,下列描述正确的是(  )

A一段式寄存器输出,易产生毛刺,不利于时序约束;

B二段式组合逻辑输出,不产生毛刺,有利于时序约束;

C三段式寄存器输出,不产生毛刺,有利于时序约束;

D所有描述风格都是寄存器输出,易产生毛刺,有利于时序约束。

解:

C

(1)一段式:一个always块,既描述状态转移,又描述状态的输入输出,当前状态用寄存器输出;

(2)二段式:两个always块,时序逻辑与组合逻辑分开,一个always块采用同步时序描述状态转移;另一个always块采用组合逻辑判断状态转移条件,描述状态转移规律以及输出,当前状态用组合逻辑输出,可能出现竞争冒险,产生毛刺,而且不利于约束,不利于综合器和布局布线器实现高性能的设计;

(3)三段式:三个always块,一个always模块采用同步时序描述状态转移;一个always采用组合逻辑判断状态转移条件,描述状态转移规律;第三个always块使用同步时序描述状态输出,寄存器输出。

三段式与二段式相比,关键在于根据状态转移规律,在上一状态根据输入条件判断出当前状态的输出,从而在不插入额外时钟节拍的前提下,实现了寄存器输出。

2.线网中的值被解释为无符号数。在连续赋值语句中,assign addr[3:0]=-3;addr被赋予的值是(  )

A 4'b1101

B 4' b0011

C 4' bxx11

D 4' bzz11

解:

A

3. "a=4' b1100,b=4'  bx110" 选出正确的运算结果(  )

A a&b=0

B a&&b= 1

C b&a=x

D b&&a=x

解:A

bd应该等于什么?

4.下列描述代码可综合的是(  )

A fork... join

B assign/deassign

C if ... else和case

D repeat和forever

解:C

5. reg[255:0] mem[7:0]正确的赋值是(  )

A mem[5]==3' d0;

B mem[10]=8' d1;

C mem=0;

D mem[5][3:0]=4' d1;

解:D

6.以下关于逻辑综合中解决congestion问题描述不正确的是(  )

A禁用多引脚标准单元,例如4输入引脚以上的标准单元

B使用partial blockage以降低congestion区域的cell density

C过多使用MUX单元不利于congestion的优化,因此MUX单元要尽可能禁用

D尽可能使用DCG做逻辑综合

解:C 不会

A不懂

B是对的

Congestion问题怎么解决? - 走看看

Verilog设计遇到了Congestion问题怎么办?

C不是禁用吧,应该是用小的mux,不用太大的

D是对的:

D​​​​​​​DC、DCT与DCG_随芯所欲-商业新知

7.综合不包括下面哪一个过程(  )

A Translation

B Routing

C Mapping

D Logic Optimization

解:B

综合分为三个部分:Synthesis= Translate + Mapping + Optimization。

数字IC设计之DC(一):DC简介 - 走看看

1、  Translate 是将 HDL转化为GTECH库元件组成的逻辑电路,这步通过read_verilog进行(verilog代码),verilog代码被读入后,将会被自动translate。GTECH是独立于工艺库的通用元件库。这个时候可以用write -output ./unmapped/design.db输出unmapped的二进制文件。

2、  Mapping 是将GTECH映射到某一指定的工艺库,此网表包含了工艺参数。

3、  Optimization 是将网表按设计者的约束进行优化

后两步通过加约束后使用compile命令完成。完成optimization之后可以通过

write -format verilog -hierarchy -output./p_syn_sim/design.v

写成verilog格式的网表,这是map后的结果。如果输出的是顶层模块,所有模块的module都会输出到同一个文件中。顶层模块一般在最后。

8.下面关于FIFO的描述正确的是

A FIFO的读写必须属于同一时钟域

B FIFO是先进先出的存储器

C外部不可以直接操作FIFO的读写地址

D FIFO的空信号在写时钟域产生,满信号在读时钟域产生

解:BC都对啊

A异步

C不可以直接操作地址

D空在读,满在写

9. Verilog语言中,下列哪些语句不可以被综合(  )

A generate语句块

B for语句块

C function语句块

D force语句

解:D

10. 下面表达式中结果位1' b1的是(  )

A 4' b1010&4'  b1101

B !4' b1001 || !4' b0000

C &4' b1101

D ~4' b1100

解:B

A = 0

B = 1

C = 0

D = 4'b0011

简答题

11.简述流水线设计的方法和作用。

方法:将较长的组合逻辑拆分成小段,中间加寄存器delay

作用:可以提高时钟频率,提高数据吞吐量

别人写的:

流水线设计的方法和作用_dongdongnihao_的博客-CSDN博客_流水线设计

流水线设计从某种程度上可以提高系统频率,因此常用于高速信号处理领域,如果某个信号可以分为若干步骤处理,而且整个数据处理过程是单项的,即没有反馈运算和迭代运算,前一个步骤的输出就是下一个步骤的输入,可以考虑流水线设计来提高系统的频率。
如下图所示:
典型的流水线设计是将原本一个时钟周期完成的较大的组合逻辑,通过合理的切割后分由多个时钟周期来完成,这样一来该部分逻辑运行的时钟频率就会有明显的提升,尤其当她是一条关键路径时,采用流水线设计后整个系统的性能都会得到提升

12.怎样用D触发器、与或非组成二分频电路?

将寄存器的Q端通过一个非门连接到dff的D端

13.请根据下面的设计描述,尽可能多的列出你所能想到的用于功能验证的测试点

一个异步FIFO, rdata和wdata均为8位数据,FIFO深度为16,当rst_n输入为低时,FIFO被复位,当wclk的上升沿采样到wr为高时,数据被写入FIFO,当rclk的上升沿采样到rd为高时,FIFO输出数据。此外,当FIFO为空时,empty信号输出为高,当FIFO满时,full信号输出无高。

解:不懂验证啊

套娃一下

14.用D触发器搭建4进制的计数器。

module cnt4b(clk,rst,ena,dout,cout);
    input clk,rst,ena;
    output [1:0] dout;
    output cout;
    reg [1:0] cnt;

    assign cout=&cnt; //进位输出
    assign dout=cnt;

    always @(posedge clk or negedge rst)
    begin
        if(rst==1'b0)
            cnt<=2'h0;
        else if(ena==1'b1)
            cnt<=cnt+1'b1;
    end
endmodule

15.设计一个同步fifo,读写时钟相同,其中在写入时每100个时钟周期会写10个,具体哪个时刻写入不确定,在读出侧每10个cycle会读1个,计算FIFO的最小深度?

解:

假如背靠背

20-20*(1/1)*(1/10)= 18

例题:

FPGA/数字IC秋招笔试面试013——FIFO深度计算【字节跳动】【大疆】【简便计算公式】【FPGA探索者】(2022届) - 知乎

16.如下代码在综合时是否可以综合出时钟门控电路?如果能,画出时钟门控示意图,如果不能,请修改使信号out可以综合出时钟门控电路。

always @(posedge clk or negadge rst_n) begin
    if(rst_n==1' b0)
        out <= 64' b0;
    else
    if (out en)
        out<= data;
    else
        out<=64' b0;
end

解:

不能综合出门控时钟,把else去了就行

always @(posedge clk or negadge rst_n) begin
    if(rst_n==1' b0)
        out <= 64' b0;
    else
    if (out en)
        out<= data;
end

编程题

17.用Verilog语言实现一个带使能的模100异步清0计数器;模块定义为module count (out, count_en, clr, clk);

​​​​​​​

 

 

18.画出可以检测11101串的状态转移图,并用Verilog实现FSM;要求每检测到一次该序列,输出2个周期的高电平信号;要求使用低功耗IND的状态机编码方式;

​​​​​​​

 

19、补一个乐鑫今年的实习笔试题

 


verilog 移位运算符 说明_FPGA、数字IC系列(2)——电子科大与北航部分Verilog题目与解析..._小马甲不小的博客-CSDN博客

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值