您的位置:首页 > 游戏 > 游戏 > 厂房建设公司哪家好_如何创造网站_视频剪辑培训_win7优化大师好不好

厂房建设公司哪家好_如何创造网站_视频剪辑培训_win7优化大师好不好

2024/12/22 23:56:56 来源:https://blog.csdn.net/wuyufei_sun/article/details/144535188  浏览:    关键词:厂房建设公司哪家好_如何创造网站_视频剪辑培训_win7优化大师好不好
厂房建设公司哪家好_如何创造网站_视频剪辑培训_win7优化大师好不好

一、实验目的

1. 掌握有限状态机原理和设计方法。

2. 掌握ModelSim和VIVADO工具软件。

3. 掌握基本的测试代码编写和FPGA开发板使用方法。

二、实验环境

1. 装有ModelSim和VIVADO的计算机。

2. Sword实验系统。

三、实验原理

有限状态机是时序电路的通用模型,任何时序电路都可以表示为有限状态机。在由时序电路表示的有限状态机中,各个状态之间的转移总是在时钟的触发下进行的,状态信息存储在寄存器中。因为状态的个数是有限的,所以称为有限状态机。有限状态机可以分为同步和异步两种,

    状态机的同步置位与复位:

always@(posedge clk )

    if(!rst)

    …

    状态机的异步置位与复位:

always@(posedge clk or negedge rst)

我们主要讨论有限同步状态机。有限状态机也是由两部分组成:存储电路和组合逻辑电路。存储电路用来生成状态机的状态,组合逻辑电路用来提供输出以及状态机跳转的条件。

根据输出信号的产生方式,有限状态机可以分为Mealy型和Moore型两类。Mealy型状态机的输出信号不仅与当前状态有关,而且还与输入信号有关,即可以把Mealy型有限状态机的输出看成是当前状态和输入信号的函数。Moore型状态机的输出仅与当前状态有关,即可以把Moore型有限状态的输出看成是当前状态的函数。

  1. 设计并实现掌握检测连续接收“1111”的Moore型和Mealy型状态机设计。

要求:画出Moore型和Mealy型的状态转移图,并编写代码在modelsim上仿真

xc7k160tffg676-1

top.v

`timescale 1ns / 1psmodule 	 TOP(input  wire clk_100mhz,input  wire[15:0]SW,output wire led_clk,output wire led_clrn,output wire led_sout,output wire LED_PEN				);wire[31:0]Div;wire[15:0]LED_DATA;wire CK;clk_div       U8(clk_100mhz,1'b0,SW[2],Div,CK);LED_P2S 			  #(.DATA_BITS(16),.DATA_COUNT_BITS(4)) PLED (clk_100mhz,1'b0,Div[20],LED_DATA,led_clk,led_clrn,led_sout,LED_PEN);wire dout;seqdata1111_moore U1(Div[26],SW[1],SW[2],dout);assign LED_DATA = ~{dout,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,Div[26]};	endmodule

seqdata1111_moore.v

module seqdata1111_moore(input wire clk,input wire clr,input wire din,output reg dout);reg[2:0] present_state,next_state;parameter s0=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100;always@(posedge clk)beginif(clr==1) present_state<=s0;else present_state<=next_state;endalways@(*)begincase(present_state)s0: if(din==1) next_state=s1;else next_state=s0;s1: if(din==1) next_state=s2;else next_state=s0;s2: if(din==1) next_state=s3;else next_state=s0;s3: if(din==1) next_state=s4;else next_state=s0;s4: if(din==1) next_state=s4;else next_state=s0;default: next_state=s0;endcaseendalways@(*)beginif(present_state==s4) dout=1;else dout=0;end
endmodule

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com