积少成多,集腋成裘,坚持!!!

目录

1. 进制转换

2. 状态机和编码方式

3. 存储器的分类

4. Verilog语法中的操作符

5. 对组合逻辑的认识

6. 对时序逻辑的认识

7. 竞争冒险的认识

8. 基本时序逻辑电路

9. 建立时间和保持时间

10. 同步时序电路

11. 组合逻辑和时序逻辑判断

13. 基本总线的理解

14.加法器

15.FPGA开发工具


  • 1. 进制转换

1、十进制46.25对应的二进制表达式为(  )。

A 101110.11         B 101101.01

C 101110.1          D 101110.01

考点:整数部分:除基逆取余,乘基顺取整。

  • 2. 状态机和编码方式

2、在时序电路的状态转换表中,若状态数N=3,则状态变量数最少为(  ) 

A 4          B 8         C 2        D 16

考点:状态机和编码方式(格雷码,独热码,二进制码)

为什么例子中我们使用的是独热码而非二进制码或格雷码呢?那就要从每种编码的特性上说起了,首先独热码因为每个状态只有1bit是不同的,所以在执行到43行时的(state == TWO)这条语句时,综合器会识别出这是一个比较器,而因为只有1比特为1,所以综合器会进行智能优化为(state[2] == 1’b1),这就相当于把之前3比特的比较器变为了1比特的比较器,大大节省了组合逻辑资源,但是付出的代价就是状态变量的位宽需要的比较多,而我们FPGA中组合逻辑资源相对较少,所以比较宝贵,而寄存器资源较多,所以很完美。而二进制编码的情况和独热码刚好相反,他因为使用了较少的状态变量,使之在减少了寄存器状态的同时无法进行比较器部分的优化,所以使用的寄存器资源较少,而使用的组合逻辑资源较多,我们还知道CPLD就是一个组合逻辑资源多而寄存器逻辑资源少的器件,因为这里我们使用的是FPGA器件,所以使用独热码进行编码。就因为这个比较部分的优化,还使得使用独热码编码的状态机可以在高速系统上运行,其原因是多比特的比较器每个比特到达比较器的时间可能会因为布局布线的走线长短而导致路径延时的不同,这样在高速系统下,就会导致采集到不稳定的状态,导致比较后的结果产生一个时钟的毛刺,使输出不稳定,而单比特的比较器就不用考虑这种问题。

用独热码编码虽然好处多多,但是如果状态数非常多的话即使是FPGA也吃不消独热码对寄存器的消耗,所以当状态数特别多的时候可以使用格雷码对状态进行编码。格雷码虽然也是和二进制编码一样使用的寄存器资源少,组合逻辑资源多,但是其相邻状态转换时只有一个状态发生翻转,这样不仅能消除状态转换时由多条信号线的传输延迟所造成的毛刺,又可以降低功耗,所以要优于二进制编码的方式,相当于是独热码和二进制编码的折中。

最后我们用一个表格来总结一下什么时候使用什么方式的编码效果最好(有时候不管你使用哪种编码方式,综合器会根据实际情况在综合时智能的给你进行编码的转换,当然这需要你设置额外的综合约束,这里我们不再详细讲解) 。

  • 3. 存储器的分类

3、只读存储器ROM中的内容,当电源断掉后又接通,存储器中的内容 (  )。

A 全部为0            B 不可预料           

C 保持不变           D 全部改变

考点:考察数字电路中存储器的基本知识

1)易失性存储器的代表就是RAM,RAM又分为DRAM(动态随机存储器)和SRAM(静态随机存储器),它们之间主要在于生产工艺不同。

SRAM保存数据是通过晶体管进行锁存的,其工艺复杂,生产成本高,所以价格相对较贵,不易做大容量,但是速度更快;DRAM保存数据靠电容充电来维持容量,生产成本较SRAM低,所以价格相对便宜,容量可以做到很大,速度虽然不如SRAM快但是随着工艺技术的提升,速度也很可观,所以较为常用。DRAM和SRAM都是异步通信的,速率没有SDRAM(同步动态随机存储器)和SSRAM(同步静态随机存储器)快。所以现在大容量RAM存储器是选用SDRAM的。

CPU中的Cache实质属于SRAM,而内存条则是属于DRAM。SDRAM和DDR SDRAM的区别在于DDR(Double Data Rate)是双倍速率。SDRAM只在时钟的上升沿表示一个数据,而DDR SDRAM能在上升沿和下降沿都表示一个数据。DDR也一步步经过改良出现了一代、二代、三代、四代,以及低功耗版本,现在也有五代。

2)非易失性存储器常见的有ROM,FLASH,光盘,软盘,硬盘。他们作用相同,只是实现工艺不一样。

ROM(Read Only Memory)在以前就是只读存储器,就是说这种存储器只能读取它里面的数据无法向里面写数据。实际是以前向存储器写数据不容易,所以这种存储器就是厂家造好了写入数据,后面不能再次修改。现在技术成熟了,ROM也可以写数据,但是名字保留了下来。ROM分为MASK ROM、OTPROM、EPROM、EEPROM。MASK ROM是掩膜ROM这种ROM是一旦厂家生产出来,使用者无法再更改里面的数据。OTPROM(One TimeProgramable ROM)一次可变成存储器,出厂后用户只能写一次数据,然后再也不能修改了,一般做存储密钥。EPROM(Easerable Programable ROM)这种存储器就可以多次擦除然后多次写入了。但是要在特定环境紫外线下擦除,所以这种存储器也不方便写入。EEPROM(Eelectrically Easerable Programable ROM)电可擦除ROM,现在使用的比较多因为只要有电就可擦除数据,就可以写入数据。

FLASH是一种可以写入和读取的存储器,叫闪存,FLASH也叫FLASH ROM,有人把FLASH当做ROM。FLASH和EEPROM相比,FLASH的存储容量大。FLASH的速度比现在的机械硬盘速度快,现在的U盘和SSD固态硬盘都是Nandflash。FLASH又分为Norflash和Nandflash。

  • 4. Verilog语法中的操作符

4、在Verilog语言中,a = 4’b1011,那么&a为( )。

A 4’b1111             B 1’b1           

C 1’b0                   D 4’b1011

解析:考察Verilog基本语法中的操作符

“&”操作符有两种用途,既可以作为一元操作符(仅有一个操作数),也可以作为二元操作符(有两个操作数)。

当“&”作为一元操作符时表示归约与。&m是将m中所有比特相与,最后的结果为1bit。例:&4‘b1111 = 1&1&1&1 = 1’b1,&4’b1101 = 1&1&0&1 = 1’b0。

当“&”作为二元操作符时表示按位与。m&n是将m的每个比特与n的相应比特相与,在运算的时候要保证m和n的比特数相等,最后的结果和m(n)的比特数相同。例:4’b1010&4’b0101 = 4’b0000,4’b1101&4’b1111= 4’b1101。

我们在写Verilog代码时常常当if的条件有多个同时满足时就执行使用“&&”逻辑与操作符。m &&n是判断m和n是否都为真,最后的结果只有1bit,如果都为真则输出1‘b1,如果不都为真则输出1’b0。要注意和“&”的功能区分。

  • 5. 对组合逻辑的认识

5、下面哪种不是组合逻辑电路功能描述方法(   )。

A 真值表        B 布尔方程

C 状态机        D 逻辑框图

解析:考察数字电路中对组合逻辑电路的认识

  • 6. 对时序逻辑的认识

6、时序电路的一般特征不包括(   )。

A  系统的状态保持或者变化情形取决于系统的输入及其当前状态

B  时序机的状态图和状态表是相同的设计信息的两种不同的表示形式

C  可以没有时钟

D  时序电路(机)的当前状态和输入信号决定了其下一状态及输出

解析:考察数字电路中对时序逻辑电路的认识

  • 7. 竞争冒险的认识

7、组合逻辑电路消除竞争冒险的方法有(   )。

A 在输出端接入滤波电容

B 后级加缓冲电路

C 屏蔽输入信号的尖峰干扰

D 前级加电阻

解析:考察数字电路中对组合逻辑电路中竞争冒险的认识

  • 8. 基本时序逻辑电路

8、关于2019:1的MUX,下列描述哪个正确(   )。

A 输出为1路

B 选择字为2019位

C 输入为2048路

D 以上皆对

解析:考察数字电路中对基本时序逻辑电路的认识

  • 9. 建立时间和保持时间

9、寄存器的Tsu(建立时间)是如何定义的(   )。

A  在时钟沿到来之后数据保持稳定的时间

B  在时钟沿带来前后数据都需要保持稳定的时间

C  在整个时钟周期数据保持稳定的时间

D  在时钟沿到来之前数据保持稳定的时间

解析:考察数字电路中对时序分析基本概念的认识

本题是个概念性的问题,常常在时序分析中提到。

建立时间(Set Up Time,简写为Tsu或Ts):是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间。

建立时间的门限(为了和建立时间区别开,所以简写为T_setup):时钟沿来到之前数据必须保持稳定的最小时间,芯片选定即决定,和制作工艺有关。

保持时间(Hold Time,简写为Th):是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被稳定的打入触发器,Th就是指这个最小的保持时间。

保持时间的门限(为了和保持时间区别开,所以简写为T_hold):时钟沿来到之后数据必须保持稳定的最小时间,芯片选定即决定,和制作工艺有关。

如果我们想让系统中的时钟沿能够正确的采集到数据,那么需要建立时间的余量/裕量(Setup Slack,简写为Sslack) = 建立时间(Ts) - 建立时间的门限(T_setup) ≥ 0且保持时间的余量/裕量(Hold Slack,简写为Hslack) = 保持时间(Th) - 保持时间的门限(T_hold) ≥ 0,采集到的数据最准确的地方就是在满足建立保持时间的情况下时钟沿采集到数据的中间位置。

了解这些基本的概念后可以更方便以后在讲解时序分析相关题目时快速理解。

  • 10. 同步时序电路

10、关于同步设计,说法错误的是(   )。

A  在可编程逻辑器件中,使用同步电路可以避免器件受温度,电压,工艺的影响,易于消除电路的毛刺,使设计更可靠,单板更稳定

B  为保证逻辑设计可靠,必须保证整个电路中只有一个时钟域,同时只使用同一个时钟沿

C  同步电路比较容易使用寄存器异步复位/置位端,以使整个电路有一个确定的初始状态

解析:考察数字电路中对同步时序电路的理解

首先我们先了解一下同步电路和异步电路的区别。

同步电路是由时序电路(寄存器和各种触发器)和组合逻辑电路构成的电路,其所有操作都是在严格的时钟控制下完成的。这些时序电路共享同一个时钟CLK,而所有的状态变化都是在时钟的上升沿(或下降沿)完成的。比如D触发器,当上升沿到来时,寄存器把D端的电平传到Q输出端。

异步电路主要是组合逻辑电路,用于产生地址译码器、FIFO或RAM的读写控制信号脉冲,但它同时也用在时序电路中,此时它没有统一的时钟,状态变化的时刻是不稳定的,通常输入信号只在电路处于稳定状态时才发生变化。也就是说一个时刻允许一个输入发生变化,以避免输入信号之间造成的竞争冒险。电路的稳定需要有可靠的建立时间和维持时间,待下面介绍。

电路设计可分类为同步电路设计和异步电路设计。同步电路设计利用时钟脉冲使其子系统同步运作,而异步电路设计不使用时钟脉冲做同步,其子系统是使用特殊的“开始”和“完成”信号(握手信号)使之同步。由于异步电路具有:无时钟偏移(Skew)问题、低电源消耗、平均效能而非最差效能、模块性、可组合和可复用性等优点,因此近年来对异步电路研究增加快速,论文发表数以倍增,而Intel Pentium 4处理器设计,也开始采用异步电路设计。当然异步电路设计也有很多缺点:由于增加了控制和用于DFT的电路,异步电路的面积开销可能高达同步设计的的两倍。而且由于缺乏专用于异步设计的商用EDA工具,而现在芯片设计的复杂度又越来越高,EDA工具对芯片设计来说是不可替代的,因此这一点也是我们对异步电路的实用性诟病最多的地方。

在同步电路设计中一般采用D触发器,异步电路设计中一般采用Latch。所以这也是为什么我们常常会听到有人说在FPGA设计中要尽量避免产生Latch的原因。

再给大家说一个常见的误区,很多人都以为在同步电路的设计中一定不可以有异步电路的存在,异步电路的设计中也不可以有同步电路的存在,其实这都是不对的。同步电路设计一定是整个电路是全局同步的设计,局部异步的设计;同样异步电路设计也一定是整个电路是全局异步的设计,局部同步的设计。

11. 组合逻辑和时序逻辑判断

11、属于组合逻辑电路的是(   )。

A 全加器        B 移位寄存器

C 计数器        D 触发器

12、在下列逻辑电路中,不是组合逻辑电路的是(   )。

A 编码器         B D触发器

C 加法器         D 译码器

首先我们先来看下如何用Verilog硬件描述语言来实现它们,并通过RTL视图以及波形图来看看他们的结构,来确定是组合逻辑电路还是时序逻辑电路。

  • 13. 基本总线的理解

13、双向数据总线常采用(   )构成。(华为硬件逻辑实习岗)

A 全加器          B 三态门

C 译码器          D 数据分配器

解析:考察对基本总线的了解。

  • 14.加法器

14、信号A、B均是4bit输入,C = A+B,请问信号C应该定义(   )bit。(华为硬件逻辑实习岗)

A 4           B 5

C 6           D 3

解析:考察对基本数字电路中加法器的了解。

根据上面加法器的例子,我们可以看出两个数相加求和后的总位宽为其中加数最大的位宽再加1。两个加数的位宽分别为m和n,其相加后的总位宽可以表示为:[max(m , n) + 1],也有一些题目是让求多个数相加总位宽需要多少,我们同样可以转化为两个数求总位宽的问题。

还有些题目会考察两个相乘后的积的总位宽,其总位宽为两个数位宽之和。两个乘数的位宽分别为m和n,其相乘后的总位宽可以表示为:m+n。

  • 15.FPGA开发工具

15、下列哪些是FPGA开发工具(   )。

A  ISE             B  Vivado

C  CCS            D  Quartus

解析:本题主要考察了对FPGA基本开发工具的了解。

每个生产FPGA芯片厂商的开发工具都各不相同,因为最后都需要对芯片进行布局布线的映射,所以只有自家的开发工具才能做的更好,第三方工具能做的最多也只能是仿真与综合。

全球三大FPGA厂商都是美国公司(也有说Actel排第四,这里不再列举),虽然国产FPGA近年来也是异军突起,但是在中高端领域无论是开发工具、还是芯片、还是市场份额都无法与之相比。

Xilinx作为全球FPGA市场份额最大的公司,其发展动态往往也代表着整个FPGA行业的动态。其开发工具有很多,主要做逻辑开发的目前有两种,2012年之前主要是ISE,支持7系列及以下的芯片开发,而Vivado是Xilinx公司于2012年开始发布的集成设计环境,主要支持7系列及以上的芯片开发,包括Zynq、UltraScale、UltraScale+等高端器件的支持,并引入Block Design的设计方法,且对文件夹的管理更加智能化。

Altera公司2015年被Intel斥资167亿美元收购,全球FPGA市场份额第二。Altera的开发工具叫Quartus,被收购前名为QuartusII,被收购后从改名为Quartus_Prime(从15.1版本开始往后)。

Lattice公司以其低功耗产品著称,全球FPGA市场份额第三,苹果7手机内部搭载的FPGA芯片就是Lattice的产品。Lattice公司的开发工具叫Diamond

这里CCS不是FPGA开发工具,其全称是CodeComposer Studio,它是美国德州仪器公司(Texas Instrument,TI)出品的代码开发和调试套件。TI公司的产品线中有一大块业务是数字信号处理器(DSP)和微处理器(MCU),CCS便是供用户开发和调试DSP和MCU程序的集成开发软件。

华为硬件逻辑岗笔试题(一)相关推荐

  1. 华为 SWE 实习岗 笔试题 JAVA

    最近又参与了一场华为的软件开发实习岗的笔试,于是想将题目分享一下~ 如果有啥更好的想法欢迎交流~ Here We Go! 题目一 幼儿园老师安排小朋友做游戏,现在需要给 N 个小朋友进行分组,老师让每 ...

  2. 华为2018软件岗笔试题解题思路和源代码分享

    2017年9月26日,参加了华为技术有限公司的笔试,题目类型是软件题,没有选择填空问答类型,总共是3道编程题目,题目难度适中,在两个小时内完成3道题目的AC,所以分享的代码都是可运行且完全AC的! 和 ...

  3. 2019校招硬件岗笔试题(乐鑫科技+比特大陆)

    2019校招硬件岗笔试题(乐鑫科技+比特大陆) 都是提前批次的笔试题,乐鑫科技是现场笔试,监考还挺严格的.写一写回忆版的笔试题. 乐鑫考察的比较多,但是都很基础,关于高速电路部分,推荐<信号完整 ...

  4. 华为2018届校招技术岗笔试题及个人解答

    前言 昨天(9.13)参加了华为2018届的技术岗笔试,特此总结一下笔试的题目和我个人的解答思路. 笔试题一共是三道编程题,大致是数值反向输出,比较和排序,相对较基础. PS:由于没有截图,所以题目是 ...

  5. [转载] 硬件工程师经典笔试题集锦---(张飞实战电子)

    [别找了全在这]硬件工程师经典笔试题集锦! 直转链接:https://www.sohu.com/a/312704438_819258 数字电路知识问题,请简要回答之. (1) 什么是 Setup和 H ...

  6. 2021 华为硬件开发岗 春招经历

    2021.3.3 华为硬件开发岗 春招经历 一.个人经历和申请的初始 二.准备机考 三.机试完成 四.技术一面二面完成 五.更新最终综合面 六.更新结果 本人将会记录下这次春招试水的全部过程,一是自己 ...

  7. 仿真软件测试基尔霍夫定律,硬件工程师常见笔试题汇总

    原标题:硬件工程师常见笔试题汇总 一.电路分析: 1.竞争与冒险 在组合逻辑中,在输入端的不同通道数字信号中经过了不同的延时,导致到达该门的时间不一致叫竞争.因此在输出端可能产生短时脉冲(尖峰脉冲)的 ...

  8. 腾讯2016春招安全岗笔试题解析

    腾讯2016春招安全岗笔试题解析 昨天(4月2日)晚上7:00到9:00做了腾讯春招安全岗的笔试题.下面解析一下: 题目解析 1 在生成随机数前用当前时间设置随机数种子应该是安全的.如果程序用固定的数 ...

  9. 华为机试python打印机_华为校园招聘上机笔试题 扑克牌大小(python)

    本文为大家分享了华为校园招聘上机笔试题,供大家参考,具体内容如下 [编程题] 扑克牌大小 时间限制:10秒 空间限制:131072K 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A,2各 ...

最新文章

  1. 三圆相交阴影部分面积_这题要证明圆的切线并求阴影面积,分割图形求面积法是解题关键...
  2. 鸿蒙2.0开始推送,华为OS首次登陆手机,亮点槽点都在这里
  3. SqlServer_Case_When用法
  4. 项目托管至GitHub上
  5. Linux 命令查找指定文件夹下符合查询条件的文件和文件夹实例演示
  6. 《编译原理》实验报告——TINY语言的词法分析
  7. mysql字段简索引_MySQL优化看这一篇就够了
  8. 【AI面试题】One-hot的作用,为什么不直接使用数字作为表示
  9. mysql 按时间分库分表_sharding-jdbc 按时间分库分表
  10. PAT 乙级 1022. D进制的A+B (20) Java版
  11. 如何成为Java开发工程师?
  12. 《搭建Centos7之一》
  13. 【VHDL】分频器设计要求:25分频,占空比为50%
  14. 微信小程序自定义下拉刷新
  15. java word jar包_处理word的poi的jar包
  16. 域名购买以及云解析DNS
  17. JAVA数独解题(一):框架搭建
  18. 【pano2vr】网页Flash中简单实现炫酷的3D模型制作
  19. 网络安全应急响应----8、网页篡改应急响应
  20. python animation 轨迹_Matplotlib animation模块实现动态图

热门文章

  1. 基于JavaSwing开发天猫购物商城系统(用户 管理员角色) 课程设计 毕业设计源码
  2. 自定义listview和ProgressBar的简单使用
  3. 【英语学习】英语语法术语表 English Grammar Terminology
  4. 蓝桥杯刷题以及算法解析的网址
  5. 小程序“扫码购”的自助收银模式可以为商家带来什么?
  6. jsp高级DOM和BOM
  7. # TIG监控体系搭建
  8. eclipse 是用来写客户端的,MyEclipse 是用来写服务器端的,谐音记忆法,My 买,买服务器这样就好记了。
  9. 前嗅教你大数据:批量采集/下载网页中的图片数据
  10. MSDC 4.3 接口规范(19)