FPGA 考试题目

一、读程题.以下是一段4位计数器的verilog程序,试填空使程序完整.(10分)

module count4(out,reset,clk);
output[3:0]out;
input reset,clk;
reg [3:0]out;
always@(posedgeclk)
begin 
	if(reset)
          out=4'b0000:/复位
	else  out= out + 1'b1;/计数
end 
endmodule

二、编程题.有一个2路数据比较器,输入A、B(位宽为2),三个输出ABB、AEB、ASB分别代表A>B、A=B和A<B. 试编写一段TestBench程序对该电路进行测试.(15分)
在这里插入图片描述
源程序:

//2位数据比较器——采用行为描述方式
//comp_2_ex3.v
module comp_2_ex3(A,B,ABB,AEB,ASB);
input [1:0]A,B;
output ABB,AEB,ASB;
reg ABB,AEB,ASB;
always@(A or B)
	begin
	    if(A>B)
		    ABB<=1'b1;
		    AEB<=1'b0;
		    ASB<=1'b0;
		 if(A==B)
		    ABB<=1'b0;
		    AEB<=1'b1;
		    ASB<=1'b0;
		 if(A<B)
		    ABB<=1'b0;
		    AEB<=1'b0;
		    ASB<=1'b1;
	end
endmodule
	   

TestBench程序:

`timescale 1us/1ps //延时单位为1us,精度为1ps
 
module tb_comp_2_ex3();
  reg [1:0] A,B;
  
  parameter delay=5; //每产生一个结果,延时5us
  
  //例化
  comp_2_ex3 instance1(
    .A(A),
    .B(B)
  );
  
  //初始化赋值4组样例
  initial 
    begin  
      A=2'b01,B=2'b00; //ABB
      #delay 
      A=2'b00,B=2'b00; //AEB
      #delay 
      A=2'b01,B=2'b01; //AEB
      #delay 
      A=2'd00,B=2'b01; //ASB
      #delay;
    end
endmodule

三、编程题。某系统时钟频率是5MHz,试用Verilog.语言设计一个分频器获得1Hz的频率:
(1)画出电路框图
(2)写出其VerilogHDL程序。(20分)
在这里插入图片描述

//div5000000.v
module div5000000(clk,clkout);
input clk;
output clkout;
reg clkout;
reg [22:0] cnt;
always@(posedge clk)
   begin
      if(cnt==22'd2500000)
         cnt<=1'b0;
      else  cnt=cnt+1'b1;
   end
always@(posedge clk)
   begin
      if(cnt==22'd2500000)
         clkout=~clkout;
      else;
   end
endmodule

四、编程题。利用VerilogHDL语言设计一个7人表决器电路,使其能够满足功能:7人投票,票数大于等于4则表决通过,否则不通过:
(1)要求画出该电路框图
(2)写出其VerilogHDL程序。(25分)
在这里插入图片描述

//seven_voter_ex.v
module seven_voter_ex(a,b,c,d,e,f,g,u);
input a,b,c,d,e,f,g;
output u;
wire [1:0] add_result;
assign add_result=a+b+c+d+e+f+g;
assign u=(add_result >=4)? 1'b1 : 1'b0;
endmodule

五、某商场为了促销,希望给每天第66位(比如第66位、132位、198位…)进店的消费者小礼品,试用VerilogHDL语言设计一自动电路满足下面的需求:当满足条件的消费者进店时播放音乐,迎宾小姐上前给予礼品。(1)画出电路框图(2)画出程序流程图(3)写出其yerilogHDL程序。(30分)
在这里插入图片描述
在这里插入图片描述

//voter_ex.v
module voter_ex(cnt);
input cnt;
reg[22:0]cnt=0;
output en;
always@(cnt)
   begin
      if(cnt==22'd66||22'd132||22'd198)en=1;
      else  cnt=cnt+1'b1 ;en=0;
   end
endmodule
  • 4
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
国微集团FPGA考试题目主要涉及以下内容: 1. FPGA基础知识:考察对FPGA的了解程度,包括FPGA的定义、结构特点、工作原理等。如:请简述FPGA的基本概念和特点。 2. FPGA开发工具:考察对FPGA开发工具的熟悉程度,包括常用的FPGA开发软件、开发环境搭建等。如:请列举几种常用的FPGA开发工具。 3. VHDL或Verilog语言:考察对VHDL或Verilog语言的掌握程度,包括语法、数据类型、查找表设计等。如:请写出一个简单的VHDL或Verilog代码,实现一个2输入AND门。 4. FPGA设计流程:考察对FPGA设计流程的了解,包括需求分析、设计规划、编码实现、仿真调试等。如:简述FPGA设计流程,并说明各个阶段的主要任务。 5. 实际应用案例:考察对FPGA在实际应用中的理解和应用能力。如:请举例说明FPGA在数字信号处理领域的应用场景。 回答示例: 1. FPGA基础知识:FPGA(Field-Programmable Gate Array)中文为现场可编程门阵列,是一种可现场编程的集成电路,具有灵活性高、可重构等特点。 2. FPGA开发工具:常用的FPGA开发工具有Xilinx的Vivado、Altera(现Intel)的Quartus、Lattice的Radiant等。 3. VHDL或Verilog语言:以下为一个简单的VHDL代码实现2输入AND门: ```vhdl library ieee; use ieee.std_logic_1164.all; entity AND_gate is port(a, b : in std_logic; y : out std_logic); end entity; architecture behavior of AND_gate is begin y <= a and b; end architecture; ``` 4. FPGA设计流程:FPGA设计流程包括需求分析(确定设计目标和功能)、设计规划(选择设计工具和平台)、编码实现(使用HDL进行硬件描述)、仿真调试(验证设计功能和性能)、综合实现(将HDL转化为逻辑电路)等阶段,每个阶段都有具体任务和相应的工具和方法。 5. 实际应用案例:FPGA在数字信号处理领域广泛应用,如音频和视频编码、数字滤波器、图像处理等。例如,FPGA可以用于实时音频信号采集和处理,将音频信号转化为数字信号后,利用FPGA进行滤波、音频编解码等处理,实现音频信号的增强和压缩。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tony带水!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值