FPGA面试题【Verilog实现一个2位带进位全加器,画出门级电路】

这篇具有很好参考价值的文章主要介绍了FPGA面试题【Verilog实现一个2位带进位全加器,画出门级电路】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

题目

核心思路

答案

FPGA全貌

题目

Verilog实现一个2位带进位全加器,画出门级电路

核心思路

思路见代码注释

答案

//2位加法器顶层模块
module top(s, cout, a, b, cin);
	//输入输出端口及变量定义
	output [1: 0] s;
	output cout;
	input [1 : 0] a, b;
	input cin;
	wire  carry;
	
	//采用结构描述的方式实现一个8位加法器
	fulladder m0(s[0], carry, a[0], b[0], cin);
    fulladder m1(s[1], cout, a[1], b[1], carry);
 
endmodule
 
 
 
//1位全加器模块
module fulladder(s, cout, a, b, cin);
	//输入输出端口定义
	output s, cout;
	input a, b, cin;
	
	//采用行为描述的方式实现1位全加器
	assign s = a ^ b ^ cin;
	assign cout = a & b | a & cin | b & cin;
endmodule

FPGA面试题【Verilog实现一个2位带进位全加器,画出门级电路】,FPGA面试通关宝典,fpga开发,面试

 FPGA面试题【Verilog实现一个2位带进位全加器,画出门级电路】,FPGA面试通关宝典,fpga开发,面试

FPGA全貌

第1节 什么是 FPGA
FPGA 的全称为 Field-Programmable Gate Array,即现场可编程门阵列。 FPGA 是在 PAL、 GAL、 CPLD 等可编程器件的基础上进一步发展的产物, 是作为专用集成电路( ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 简而言之, FPGA 就是一个可以通过编程来改变内部结构的芯片。

FPGA 功能实现:需要通过编程即设计硬件描述语言,经过 EDA 工具编译、综合、布局布线成后转换为可烧录的文件,
最终加载到 FPGA 器件中去,改变 FPGA 内部的连线,最终完成所实现的功能。

FPGA 性能对比:FPGA 相比于单片机、 CPU 等集成电路芯片拥有效率更高、功耗更低的特点,但是易于开发程度远远不如单片机、 CPU; 在数字芯片设计领域, FPGA 虽然相比 ASIC 具有更短的开发周期与开发难度, 但是其存在着成本过高、性能较差并且在资源的利用率上远不及 ASIC 等问题,不能真正的替代 ASIC。

第2节 FPGA 的基本结构
FPGA 可编程的特性决定了其实现数字逻辑的结构不能像专用 ASIC 那样通过固定的逻辑门电路来完成,而只能采用一种可以重复配置的结构来实现, 而查找表(LUT)可以很好地满足这一要求,目前主流的 FPGA 芯片仍是基于 SRAM 工艺的查找表结构。

FPGA 芯片参数指标:包含可编程逻辑模块的数量、固定功能逻辑模块(如乘法器)的数目及存储器资源(如嵌入式 RAM)的大小。

在最底层的可配置逻辑模块(如片上的逻辑单元) 上,存在着基本的两种部件:触发器和查找表( LUT) , 而触发器和查找表的组合方式不同,是各个 FPGA 家族之间区别的重要依据, 并且查找表本身的结构也可能各不相同( 有 4 输入或 6 输入或其他)。

查找表( Look-Up-Table)简称为 LUT, 其本质上就是一个 RAM。目前 FPGA 内部中多使用 4输入的 LUT,每一个 LUT 可以看成一个有 4 位地址线的 RAM。

当用户在 EDA 工具上通过原理图或 硬件描述语言设计了一个逻辑电路以后, FPGA 开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入 RAM 中。 这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查找表操作, 通过地址找到对应的 RAM 中的结果, 最后将其输出。以实现数字逻辑 Y=A&B&C 的功能为例。如果是在专用 ASIC 中,为了实现该逻辑,逻辑门都已经事先确定好, Y 的输出值为两个逻辑与运算后的结果,其基本的实现结构如下图所示:

对Y=A&B&C 的 利用FPGA 实现基本结构 :

第3节 更为复杂的 FPGA 架构
随着技术的发展和工艺节点的进步, FPGA 的容量和性能在不断提高的同时, 其功耗却不断的优化减少。 2006 年以前四输入查找表一直被广泛使用, 在一些高端器件可能会用上六输入、八输入或更多输入端口的查找表。 而一个多输入的查找表又可以分解成较小输入的查找表, 即能够分裂成许多更小的功能。 例如一个八输入的查找表可以分解成两个四输入的查找表或分解成一个三输入加一个五输入的查找表。在实际的高端器件中,这种可编程构造可以描述相当于百万级(有时甚至千万级)的原始逻辑门。

在 FPGA 内部,利用 FPGA 的可编程性在芯片内部构造实现了一个计数器逻辑,有着“软内核”与“硬内核”之分。

软内核(软功能):在构造计数器逻辑过程中使用到的功能便可以被称为软功能。

硬内核(硬功能):功能若是直接利用芯片实现的,则是利用了芯片内部的硬功能。

软内核与硬内核之间优势互补,软内核的优势在于可以在利用芯片资源的基础上利用编程设计让其完成需要实现的任何功能(注意是数字功能,不包括模拟功能)。 而**硬内核由于是实现固定功能的器件,因此其优势在于资源利用率高且功耗较低, 占用硅片的面积也较小, 并具有较高的性能。最重要的区别**在于:与软内核相比硬内核可用于实现模拟功能, 例如锁相环的倍频功能,这个功能需要在模拟电路下实现,所以这一部分是在 FPGA 内部用硬件来实现的 。文章来源地址https://www.toymoban.com/news/detail-720351.html

到了这里,关于FPGA面试题【Verilog实现一个2位带进位全加器,画出门级电路】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA实现1位全加器和4位全加器

    1、基于Quartus件完成一个1位全加器的设计,分别采用:1)原理图输入 以及 2)Verilog编程 这两种设计方法。 2、在此基础上,用原理图以及Verilog 编程两种方式,完成4位全加器的设计,对比二者生成的 RTL差别;使用modelsim验证逻辑设计的正确性。 num1和num2是加数,cin是低位进

    2024年02月05日
    浏览(40)
  • 北邮22级信通院数电:Verilog-FPGA(6)第六周实验:全加器(关注我的uu们加群咯~)

    北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 一.verilog 代码 add.v 二.管脚分配 三.实验效果 3.1说明 ​编辑 3.2实验

    2024年02月06日
    浏览(44)
  • FPGA编程入门——基于Quartus件完成一个1位全加器的设计

    基于Quartus件完成一个1位全加器的设计,分别采用:1)原理图输入 以及 2)Verilog编程 这两种设计方法。开发板基于Intel DE2-115。 在此基础上,用原理图以及Verilog 编程两种方式,完成4位全加器的设计,对比二者生成的 RTL差别;使用modelsim验证逻辑设计的正确性,并在DE2-115开

    2024年02月05日
    浏览(64)
  • FPGA——1位全加器和4位全加器的实现

    1、半加器 半加器是实现两个一位二进制数加法运算的器件。它具有两个输入端(被加数A和加数B)及输出端Y。 是数据输入被加数A、加数B,数据输出S和数(半加和)、进位C。 A和B是相加的两个数,S是半加和数,C是进位数。 所谓半加就是不考虑进位的加法,它的真值表如下 (见表

    2024年02月04日
    浏览(61)
  • 基于Verilog与器件图的1位全加器实现

    1位二进制数全加器是一个具有三个输入端和两个输出端的,能对被加数、加数以及来自低位的进位相加得到“全加和”与“全加进位”。 它的真值表如下: Ai Bi Ci-1 Ci Si 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 它的逻辑表达式如下: 从仿真的结果来看,

    2024年02月07日
    浏览(41)
  • FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

    1、半加器是指对输入的两个一位二进制数相加,输出一个半加结果位和半加进位的组合电路,是没有进位的输入加法器电路,是一个实现一位二进制数的加法电路。 2、半加器的真值表如下; S位结果位,C为进位 3、由真值表可以推出半加器的逻辑表达式为: 4、半加器逻辑电

    2023年04月25日
    浏览(41)
  • FPGA-1位全加器的实现

    1.半加器的定义 半加器是能够对两个一位的二进制数进行相加得到半加和以及半加进位的组合电路。 2.半加器的真值表 A,B表示二进制数,C表示半加进位,S表示半加和 A B C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 3.输出表达式 S = A ˉ B + A B ˉ = A ⊕ B C = A B 1.1位全加器的真值表 Ain表示被加数

    2024年02月03日
    浏览(44)
  • 【FPGA实验一】半加器全加器实现

    半加器 什么是半加器? 半加器是能够对两个一位的二进制数进行相加得到半加和以及半加进位的组合电路。 半加器的真值表 半加器表达式: 半加器电路图: 建立原理图 启动 Quartus II 软件,选择File-New Project Wizard,在出现的界面下先Next,填写工程的路径和名称,然后接着

    2024年02月12日
    浏览(43)
  • FPGA编程入门——实现一位全加器

    然后通过4个1位全加器的串行级联,完成一个4位全加器的原理图设计;再改用 Verilog编程(3种模式:门电路、数据流和行为级描述),完成这个4位全加器设计,并观察Verilog代码编译综合后生成的 RTL电路,与之前电路图设计的4位全加器电路进行对比 。 如果仿真波形的逻辑功

    2024年02月04日
    浏览(40)
  • 【无标题】FPGA编程入门——实现一位全加器

    1、首先基于Quartus 软件采用原理图输入方法完成一个1位全加器的设计。然后通过4个1位全加器的串行级联,完成一个4位全加器的原理图设计;再改用 Verilog编程(3种模式:门电路、数据流和行为级描述),完成这个4位全加器设计,并观察Verilog代码编译综合后生成的 RTL电路,

    2024年02月03日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包