FPGA笔试题知识点汇总(41~60)

FPGA笔试题知识点汇总

第三章 FPGA笔试题知识点汇总(41~60)


文章目录


前言

        已经进入秋招的黄金期,面临找工作之际,继上一章,这是第三章,继续汇总一下网上的题目,每日打卡,供自己巩固复习知识点,祝愿自己能找到FPGA工作,如有错误,恳请各位大佬能够批评指正,本人咸鱼FPGA一枚。


一、题目及解析?

1.IC设计过程中将寄生效应的怎样反馈影响设计师的设计方案?(寄生效应在IC设计中怎样加以克服和利用)

        所谓寄生效应就是那些溜进你的PCB并在电路中大施破坏、令人头痛、原因不明的小故障。它们就是渗入高速电路中隐藏的寄生电容和寄生电感。其中包括由封装引脚和印制线过长形成的寄生电感;焊盘到地、焊盘到电源平面和焊盘到印制线之间形成的寄生电容;通孔之间的相互影响,以及许多其它可能的寄生效应。

        理想状态下,导线是没有电阻,电容和电感的。而在实际中,导线用到了金属铜,它有一定的电阻率,如果导线足够长,积累的电阻也相当可观。两条平行的导线,如果互相之间有电压差异,就相当于形成了一个平行板电容器(你想象一下)。通电的导线周围会形成磁场(特别是电流变化时),磁场会产生感生电场,会对电子的移动产生影响,可以说每条实际的导线包括元器件的管脚都会产生感生电动势,这也就是寄生电感

        在直流或者低频情况下,这种寄生效应看不太出来。而在交流特别是高频交流条件下,影响就非常巨大了。根据复阻抗公式,电容、电感会在交流情况下会对电流的移动产生巨大阻碍,也就可以折算成阻抗。这种寄生效应很难克服,也难摸到。只能通过优化线路,尽量使用管脚短的SMT元器件来减少其影响,要完全消除是不可能的

2.设计一个自动饮料售卖机,饮料10分钱,硬币有5分和10分两种,并考虑找零

1.画出fsm(有限状态机)

2.用verilog编程,语法要符合FPGA设计的要求

3.设计工程中可使用的工具及设计大致过程?

设计过程:

a.首先确定输入输出,A=1表示投入10分,B=1表示投入5分,Y=1表示弹出饮料,Z=1表示找零。

b.确定电路的状态,S0表示没有进行投币,S1表示已经有5分硬币。

c.画出状态转移图。

module sell(
input  clk,
input  rst,
input    a,
input    b, 
output   y,
output   z);

parameter s0=0,s1=1; 
reg state,next_state;   

always@(posedge clk) begin    
   if(!rst)    
      state<=s0;    
   else 
      state<=next_state;
 end   

always@(a or b or cstate) begin   
       y=0;
       z=0;    
     case(state)  
       s0: if(a==1&&b==0) 
               next_state=s1;       
           else if(a==0&&b==1) begin 
               next_state=s0;
                y=1; 
             end 
           else 
               next_state=s0;   
       s1: if(a==1&&b==0) begin 
               next_state=s0;
               y=1; 
             end 
           else if(a==0&&b==1) begin 
               next_state=s0; 
                y=1;z=1; 
             end 
           else 
               next_state=s0; 
      default: next_state=s0; 
    endcase 
  end 
endmodule  

3.加上拉电阻后,TTL可驱动CMOS.上拉电阻用途?

上拉电阻用途:

1、当TTL电路驱动CMOS电路时,如果TTL电路输出的高电平低于CMOS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。

2、OC门电路必须加上拉电阻,以提高输出的高电平值。

3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。

4、在CMOS芯片上,为了放置精电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗,提供泄荷通路。(FPGA上通常接下拉电阻,降低功耗)

5、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力

6、提高总线的抗电磁干扰能力。管脚悬空就比较容易接受外界的电磁干扰。

7、长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波的干扰

上拉电阻阻值的选择原则包括:

1、从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。

2、从确保足够的驱动电流考虑应当足够小;电阻小,电流大。
3、对于高速电路过大的上拉电阻可能边沿变平缓。综合考虑以上三点,通常在1k到10k之间选取。对下拉电阻也有类似道理。
        OC门电路必须加上拉电阻,以提高输出的高电平值。OC门电路要输出1时才需要加上拉电阻不加根本就没有高电平
        在有时我们用OC门作驱动(例如控制一个 LED)灌电流工作时就可以不加上拉电阻 总之加上拉电阻能够提高驱动能力。

4.画出CMOS电路的晶体管级电路图,实现Y=A*B+C(D+E).(仕兰微电子)?

      Y=A*B+C(D+E)=((AB)’(CD)’(CE)’)’ 三个两输入与非门,一个三输入与非门

5.用与非门等设计全加法器?(华为)

通过摩根定律化成用与非门实现

全加器的真值表

输入输出
CIABSCO
00000
00110
01010
01101
10010
10101
11001
11111

     

化简得到:S=(A'B'CI'+AB'CI+A'BCI+ABCI')'      CO=(A'B'+B'CI'+A'CI')'

一位全加器的与非门实现:

完全用与非门搭的全加器电路如下:

6.用你熟悉的设计方式设计一个可预置初值的7进制循环计数器,15进制的呢?

module  counter7(
  input         clk,
  input        rst_n,
  input  [2:0] data ,//预置的初值
  input        load ,
  output reg [2:0] cout);  

always @(posedge clk) begin 
    if(!rst_n) 
       cout <= 3'd0;
    else if(load)
       cout <= data ;
    else if(cout <3'd6)
       cout <= cout + 1'b1;
    else 
        cout <= 3'd0;
end 
endmodule 

7.你所知道的可编程逻辑器件有哪些?

         PAL,PLA,GAL,CPLD,FPGA

8.用Verilog或VHDL写一段代码,实现消除一个glitch(毛刺)?

        消除毛刺的方法,在上一章讨论过,就是防止亚稳态的措施(例如降低时钟频率,用更快的触发器FF),因为毛刺可能会导致亚稳态,这里因为题干采用代码的形式表达,那么这里最好采用同步器的方式,将传输过来的信号经过两级触发器就可以消除毛刺。但这种方式消除毛刺是需要满足一定条件的,并不能保证一定可以消除,只能尽量降低毛刺的影响。

module    glitch(
 input      clk,
 input      rst_n,
 input      data,
 output reg value_d);

reg  data_t0  ;

always @(posedge clk or negedge rst_n) begin
   if(!rst_n) begin 
      data_t0  <= 1'b0;
      value_d  <= 1'b0;
     end 
   else begin
      data_t0  <= data   ;
      value_d  <= data_t0;
     end 
end

endmodule 

9.SRAM,FALSH MEMORY,DRAM,SSRAM及SDRAM的区别?

SRAM:静态随机存储器,存取速度快,但容量小,掉电后数据会丢失,不像DRAM 需要不停的REFRESH,制造成本较高,通常用来作为快取(CACHE) 记忆体使用。

FLASH:闪存,存取速度慢,容量大,掉电后数据不会丢失

DRAM:动态随机存储器,必须不断的重新的加强(REFRESHED) 电位差量,否则电位差将降低至无法有足够的能量表现每一个记忆单位处于何种状态。价格比SRAM便宜,但访问速度较慢,耗电量较大,常用作计算机的内存使用。

SSRAM:即同步静态随机存取存储器。对于SSRAM的所有访问都在时钟的上升/下降沿启动。地址、数据输入和其它控制信号均于时钟信号相关。

SDRAM:即同步动态随机存取存储器。

10.ASIC设计流程中什么时候修正Setup time violation 和Hold time violation?如何修正?解释setup和hold time violation,画图说明,并说明解决办法。(威盛VIA2003.11.06 上海笔试试题)

      见第一章的建立时间和保持时间,violation违反,不满足

11.实现三分频电路,3/2分频电路等(偶数倍分频 奇数倍分频)

        JK-FF实现3分频很方便,不需要附加任何逻辑电路就能实现同步计数分频。但用D-FF实现3分频时,必须附加译码反馈电路,强制计数状态返回到初始全零状态,就是用NOR门电路把Q2,Q1=―11B‖的状态译码产生―H‖电平复位脉冲,强迫FF1和FF2同时瞬间(在下一时钟输入Fi的脉冲到来之前)复零,于是Q2,Q1=―11B‖状态仅瞬间作为―毛刺‖存在而不影响分频的周期,这种―毛刺‖仅在Q1中存在,实用中可能会造成错误,应当附加时钟同步电路或阻容低通滤波电路来滤除,或者仅使用Q2作为输出。D-FF的3分频,还可以用AND门对Q2,Q1译码来实现返回复零。

12.描述反馈电路的概念,列举他们的应用

        反馈,就是在电路系统中,把输出回路中的电量(电压或电流)输入到输入回路中去。 反馈的类型有:电压串联负反馈电流串联负反馈电压并联负反馈电流并联负反馈负反馈的优点:降低放大器的增益灵敏度改变输入电阻和输出电阻改善放大器的线性和非线性失真,有效地扩展放大器的通频带,自动调节作用。 电压负反馈的特点电路的输出电压趋向于维持恒定电流负反馈的特点电路的输出电流趋向于维持恒定        

13.源滤波器和无源滤波器的区别

无源滤波器:这种电路主要有无源元件R、L和C组成
有源滤波器:集成运放和R、C组成,具有不用电感体积小重量轻等优点。     

        集成运放的开环电压增益和输入阻抗均很高,输出电阻小,构成有源滤波电路后还具有一定的电压放大和缓冲作用。但集成运放带宽有限,所以目前的有源滤波电路的工作频率难以做得很高。

14.用逻辑门画出D触发器。(威盛VIA 2003.11.06 上海笔试试题)

电平触发的D触发器(D锁存器)牢记!(在SR触发器的基础之上,将SR两端用D改进

边沿触发的D触发器,有两个D锁存器构成CMOS主从D触发器

15.画出DFF的结构图,用verilog实现之。(威盛)

DFF(D触发器)的结构图参考上一题14的边沿触发的D触发器

module   DFF(
 input      clk,
 input      rst_n ,
 input      D,
 output reg  q
);

always @(posedge clk  or negedge rst_n) begin 
   if(!rst_n)
       q <= 1'b0 ;
   else 
       q <= D;
end 

endmodule 

16.用VERILOG或VHDL写一段代码,实现10进制计数器

 module     counter10(
  input         clk,
  input         rst,
  output reg  [3:0] count
);  

always@(posedge clk) begin    
     if(!rst)   
        count<=0; 
     else if(count>=4’d9)   
        count<=0;    
     else 
        count<=count+1; 
   end 
endmodule   

17.你知道的集成电路设计的表达方式有哪几种?(仕兰微面试题目)

 集成电路设计也叫IC设计,IC 分数字和模拟 门海 门阵列 FPGA ASIC CPLD

18.描述你对集成电路设计流程的认识。(仕兰微面试题目)

        制定规格书-任务划分-设计输入-功能仿真-综合-优化-布局布线-时序仿真时序分析-芯片流片-芯片测试验证   

19.描述你对集成电路工艺的认识。(仕兰微面试题目)

        工艺分类:TTLCMOS两种比较流行,TTL速度快功耗高CMOS速度慢功耗低

        集成电路的工艺主要是指CMOS电路的制造工艺,主要分为以下几个步骤:衬底准备-氧化、光刻-扩散和离子注入-淀积-刻蚀-平面化。

20.请用HDL描述四位的全加法器、5分频电路。(仕兰微电子)

四位的全加法器

  module       adder4(
   input  [3:0]  a,
   input  [3:0]  b,
   input        ci,
   output [3:0]  s,
   output       co
);

assign{co,s} = a+b+ci;

endmodule 

5分频电路(此处占空比不为50%,3:5)

 module    div5(
  input       clk,
  input       rst_n,
  input  reg  clk_out
);

always @(posedge clk or negedge rst_n) begin
    if(!rst_n) begin 
        clk_out  <=  1'b0;
        count    <=  3'd0;
      end 
    else if(count == 3'd3) begin 
        clk_out  <=  1'b1;
        count    <=  count + 1'b1;
      end 
    else if(count == 3'd5) begin
        clk_out  <=  1'b0;
        count    <=  1'b0;  
      end 
    else begin
        clk_out  <=  1'b1;
        count    <=  1'b0;  
      end 
end 

endmodule

实现奇数倍分频且占空比为50%的情况:

module      div7 (
 input      clk, 
 input      reset_n, 
 output      clkout 
);    

reg [3:0]  count; 
reg        div1; 
reg        div2;   

//七分频计数器
always @( posedge clk ) begin 
    if ( ! reset_n )         
        count <= 3'b000;     
    else 
        case ( count ) 
          3'b000 : count <= 3'b001;             
          3'b001 : count <= 3'b010;             
          3'b010 : count <= 3'b011;             
          3'b011 : count <= 3'b100;             
          3'b100 : count <= 3'b101;             
          3'b101 : count <= 3'b110;             
          3'b110 : count <= 3'b000;             
        default : count <= 3'b000;         
       endcase 
 end   

always @( posedge clk ) begin 
    if ( ! reset_n )         
        div1 <= 1'b0; 
    else if ( count == 3'b000 )        
        div1 <= ~ div1; 
   end   

always @( negedge clk ) begin 
    if ( ! reset_n )         
          div2 <= 1'b0; 
    else if ( count == 3'b100 )         
          div2 <= ~ div2; 
   end 

assign clkout = div1 ^ div2;

 endmodule   


总结

        今日的打卡就到这里,每天整理才知道有许多细节问题,以前没有重视,算是学有所得吧,继续加油,早日找到工作,一枚想入坑的小咸鱼FPGA。

  • 4
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值