FPGA硬件工程师Verilog面试题(基础篇一)

这篇具有很好参考价值的文章主要介绍了FPGA硬件工程师Verilog面试题(基础篇一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

✅作者简介:大家好我是:嵌入式基地,是一名嵌入式工程师,希望一起努力,一起进步!
📃个人主页:嵌入式基地
🔥系列专栏:FPGA Verilog 习题专栏
微信公众号:嵌入式基地

习题一:四选一多路器

  • 点击进行在线练习
    描述
  • 制作一个四选一的多路选择器,要求输出定义上为线网类型

状态转换:

d0 11
d1 10
d2 01
d3 00

  • 信号示意图:
  • FPGA硬件工程师Verilog面试题(基础篇一)
  • 波形示意图:
  • FPGA硬件工程师Verilog面试题(基础篇一)

输入描述

  • 输入信号 d1,d2,d3,d4 sel
  • 类型 wire

输出描述

  • 输出信号 mux_out
  • 类型 wire

代码实现文章来源地址https://www.toymoban.com/news/detail-426313.html

`timescale 1ns/1ns
module mux4_1(
input [1:0]d1,d2,d3,d0,
input [1:0]sel,
output[1:0]mux_out
);
    assign mux_out = sel[0]?(sel[1]?d0:d2):(sel[1]?d1:d3);
    
endmodule

习题二:异步复位的串联T触发器

  • 点击进行在线练习
    描述

  • 用verilog实现两个串联的异步复位的T触发器的逻辑,结构如图:

  • 信号示意图:

  • FPGA硬件工程师Verilog面试题(基础篇一)

  • 波形示意图:

  • FPGA硬件工程师Verilog面试题(基础篇一)

输入描述

  • 输入信号 data, clk, rst
  • 类型 wire
  • 在testbench中,clk为周期5ns的时钟,rst为低电平复位

输出描述

  • 输出信号 q
  • 类型 reg

代码实现

`timescale 1ns/1ns
module Tff_2 (
input wire data, clk, rst,
output reg q  
);

reg q1;

always @ ( posedge clk or negedge rst)

if (~rst) begin
  q1 <= 1'b0;
  q <= 1'b0;
end 
else begin
    if (data) begin
  		q1 <= !q1;
	end
	if (q1) begin
  		q <= !q;
    end
end 
endmodule 

习题三:奇偶校验

  • 点击进行在线练习
    描述

  • 现在需要对输入的32位数据进行奇偶校验,根据sel输出校验结果(1输出奇校验,0输出偶校验)

  • 信号示意图:

  • FPGA硬件工程师Verilog面试题(基础篇一)

  • 波形示意图:

  • FPGA硬件工程师Verilog面试题(基础篇一)

输入描述

  • 输入信号 bus sel
  • 类型 wire

输出描述

  • 输出信号 check
  • 类型 wire

代码实现

`timescale 1ns/1ns
module odd_sel(
input [31:0] bus,
input sel,
output check
);

wire odd;
assign odd = ^bus;
assign check = sel?odd:~odd;

endmodule 

习题四:移位运算与乘法

  • 点击进行在线练习
    描述

  • 已知d为一个8位数,请在每个时钟周期分别输出该数乘1/3/7/8,并输出一个信号通知此时刻输入的d有效(d给出的信号的上升沿表示写入有效)

  • 信号示意图:

  • FPGA硬件工程师Verilog面试题(基础篇一)

  • 波形示意图:

  • FPGA硬件工程师Verilog面试题(基础篇一)

输入描述

  • 输入信号 d, clk, rst
  • 类型 wire
  • 在testbench中,clk为周期5ns的时钟,rst为低电平复位

输出描述

  • 输出信号 input_grant out
  • 类型 reg

代码实现

`timescale 1ns/1ns
module multi_sel(
input [7:0]d ,
input clk,
input rst,
output reg input_grant,
output reg [10:0]out
);

reg [1:0]cnt;
reg [7:0]din;

always@(posedge clk or negedge rst) begin
	if(!rst) begin
		cnt <= 0;
		out <= 0;
		input_grant <= 0;
		din <= 0;
	end
	else begin
		cnt <= cnt+1;
		case (cnt)
			0: begin
				din <= d;
				input_grant <= 1;
				out <= d;
			end
			1: begin
				input_grant <= 0;
				out <= (din<<2)-din;
			end		
			2: begin
				input_grant <= 0;
				out <= (din<<3)-din;
			end
			3: begin
				input_grant <= 0;
				out <= (din<<3);
			end	
		endcase
	end
end
endmodule

习题五:位拆分与运算

  • 点击进行在线练习
    描述

现在输入了一个压缩的16位数据,其实际上包含了四个数据[3:0][7:4][11:8][15:12],

现在请按照sel选择输出四个数据的相加结果,并输出valid_out信号(在不输出时候拉低)

0: 不输出且只有此时的输入有效

1:输出[3:0]+[7:4]

2:输出[3:0]+[11:8]

3:输出[3:0]+[15:12]

  • 信号示意图:

  • FPGA硬件工程师Verilog面试题(基础篇一)

  • 波形示意图:

  • FPGA硬件工程师Verilog面试题(基础篇一)

输入描述

  • 输入信号 d, clk, rst
  • 类型 wire
  • 在testbench中,clk为周期5ns的时钟,rst为低电平复位

输出描述

  • 输出信号 validout out
  • 类型 reg

代码实现

`timescale 1ns/1ns

module data_cal(
input clk,
input rst,
input [15:0]d,
input [1:0]sel,

output reg[4:0]out,
output reg validout
);

reg [15:0]data_lock;  


always@(posedge clk or negedge rst) begin
	if (!rst)
		data_lock <= 0;
	else if(!sel)
		data_lock <= d;
end

always@(posedge clk or negedge rst) begin
	if (!rst) begin
		out <= 'b0;
		validout <=0;
	end	
	else begin
		case(sel)
			0:begin  
				out <= 'b0;
				validout <=0;
			end
			1:begin  
				out <= data_lock[3:0]+data_lock[7:4];
				validout <=1;		
			end
			2:begin  
				out <= data_lock[3:0]+data_lock[11:8];
				validout <=1;				
			end			
			3:begin  
				out <= data_lock[3:0]+data_lock[15:12];
				validout <=1;				
			end	
        endcase
	end
end
endmodule

到了这里,关于FPGA硬件工程师Verilog面试题(基础篇一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【提升FPGA面试技能:40GE、XGE、GE接口详解】——FPGA工程师和网络工程师在实现高速接口时需要了解这些常用的网络接口,本文将深入讲解这些接口的特性和...

    【提升FPGA面试技能:40GE、XGE、GE接口详解】——FPGA工程师和网络工程师在实现高速接口时需要了解这些常用的网络接口,本文将深入讲解这些接口的特性和实现方法。 在网络领域中,传输速率是一个重要的指标,因此在选择网络接口时,需要根据不同的需求选择不同的接口

    2024年01月24日
    浏览(65)
  • 硬件工程师——电感

    电感是闭合回路的一种属性,是一个物理量。当电流通过线圈后,在线圈中形成磁场感应,感应磁场又会产生感应电流来抵制通过线圈中的电流。它是描述由于线圈电流变化,在本线圈中或在另一线圈中引起感应电动势效应的电路参数。电感是自感和互感的总称。提供电感的

    2024年02月09日
    浏览(56)
  • 硬件工程师成长之路(0)----认识元件

    系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 送给大学毕业后找不到奋斗方向的你(每周不定时更新) 中国计算机技术职业资格网 上海市工程系列计算机专业中级专业技术职务任职资

    2024年02月03日
    浏览(53)
  • 关于一个硬件测试工程师的若干思考

    前段时间生病停更了一段时间,中间请了很长时间的病假在家养病,闲暇之余对工作产生了一丝丝思考。作为一个工作了1609天的入门硬测工程师,一时觉得工作枯燥无味,一时又对工作充满希望。硬件测试工程师!懂得都懂!大部分的工作是枯燥乏味的,在一家公司工作时间

    2024年02月02日
    浏览(40)
  • 硬件工程师成长之路(11)——职业规划

    系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 送给大学毕业后找不到奋斗方向的你(每周不定时更新) 【牛客网】构建从学习到职业的良性生态圈 中国计算机技术职业资格网 上海市工

    2024年02月17日
    浏览(57)
  • 硬件工程师学习-硬件的单元测试(UT)(1)电源与时钟的测试

    调试功能基本OK后,进入单元测试阶段。 单元测试,一般是指基于开发人员自行开展的功能测试及各个功能单元的单元测试,是硬件信号级的测试,分为基本测试和信号完整性测试。也被称作硬件的白盒测试。 1、单元测试开始前,全项目组人员一起学习《硬件单元测试规范

    2024年02月06日
    浏览(49)
  • 硬件系统工程师宝典(12)-----EMC应该知道的事

    各位同学大家好,欢迎继续做客电子工程学习圈,今天我们继续来讲这本书,硬件系统工程师宝典。上篇我们说到在做电源完整性分析时去耦电容要遵循的规则,大电容的去耦半径大,小电容的去耦半径小,电容焊盘扇出时,双过孔可以减少寄生电感等。今天我们开始学习

    2023年04月23日
    浏览(50)
  • 硬件工程师必会电路模块之MOS管应用

    MOS管开关电路 学习过模拟电路的人都知道三极管是流控流器件,也就是由基极电流控制集电极与发射极之间的电流;而MOS管是压控流器件,也就是由栅极上所加的电压控制漏极与源极之间电流。 MOSFET管是FET的一种,可以被制造为增强型或者耗尽型,P沟道或N沟道共四种类型,

    2024年02月10日
    浏览(37)
  • 硬件系统工程师宝典(17)-----你的PCB符合工艺要求吗?

    各位同学大家好,欢迎继续做客电子工程学习圈,今天我们继续来讲这本书,硬件系统工程师宝典。上篇我们说到PCB设计中板子要符合EMC,信号的走线要平顺,信号回流阻抗尽量小。今天我们开始看看板子在生产制造时的工艺问题。 DFX全称是Design for X(面向产品生命周期各环

    2024年02月04日
    浏览(48)
  • 硬件工程师需要掌握的PCB设计常用知识点

          一个优秀的硬件工程师设计的产品一定是既满足设计需求又满足生产工艺的,某个方面有瑕疵都不能算是一次完美的产品设计。规范产品的电路设计,工艺设计,PCB设计的相关工艺参数,使得生产出来的实物产品满足可生产性、可测试性、可维修性等的技术规范要求,

    2023年04月20日
    浏览(57)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包