FPGA工程师笔试面试题(四)

这篇博客主要探讨了Verilog编程,包括使用状态机实现一个包含启动、测试、停止、查询、显示和初始化六个阶段的测试过程,详细阐述了各状态转换条件,并提供了同步、异步复位及置位D触发器、四位全加器、10进制计数器以及10010序列检测的Verilog实现。内容涉及数字逻辑设计和FPGA相关知识。
摘要由CSDN通过智能技术生成

Verilog编程练习:

1、根据描述功能用verilog编写一段代码并用状态机来实现该功能
(1)状态机:实现一个测试过程,该过程包括启动准备状态、启动测试、停止测试、查询测试结果、显示测试结果、测试结束返回初始化6个状态;用时间来控制该过程,90秒内完成该过程;
(2)描述状态跳转时间
(3)编码实现
解答过程如下:
(1)状态机:
在这里插入图片描述
S0表示初始化状态(initial)
S1表示准备状态:准备20秒钟。
S2 表示测试启动状态(start):经过30秒测试完成。
S3表示测试停止状态(stop):表示测试结束。
S4表示测试查询状态:进行测试结果查询。
S5表示显示查询结果状态(display):显示测试结果。

(2)
C0表示timer = 1秒时跳到S1状态。
C1表示timer =41 秒时,进入S2状态。
C2 表示timer= 71秒,进入S3状态。
C3 表示timer = 72秒,进入S4状态。
C4 表示timer =73秒时,进入S5结果显示状态。
C5 表示timer = 74 秒,返回S0初始化状态。

(3)

reg[5:0] state;
wire[63:0] timer;

always @(posedge clk)
	begin
		if(reset)
			state S0;
		else
			begin
				case(state)
					S0 ://inital
						begin
							if(timer == 1)
								state = state;
							else 
								state = S0;
						end
					S1 :// ready
						begin
							if(timer == 41)
								state = S2;
							else 
								state = state;
						end
					S2 ://start
						begin
							if(timer == 71)
								state = S3;
							else 
								state = state;
						end
					S3 ://stop
						begin
							if(timer == 72)
								state = S4;
							else 
								state = state;
						end
					S4 ://search
						begin
							if(timer == 73)
								state = S5;
							else 
								state = state;
						end
					S5 ://display
						begin
							if(timer == 74)
								state = S0;
							else 
								state = state;
						end
					default : state = S0;
				end case 
			end
	end

2、写同步、异步复位及置位D触发器的verilog module。(扬智电子笔试)

//带有异步清0、异步置1的D触发器模块描述

module D_trigger(clk,set_n,rst_n,D,Q);
	input clk;
	input set_n;
	input rst_n;
	input D;
	output Q;
	
	reg Q;
	
	always @(posedge clk or negedge rst_n or negedge set_n)
	begin
		if(!rst_n)//异步清0 低有效
			Q <= 1'b0;
		else 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值