有限状态机VHDL模板

逻辑设计, 顾名思义, 只要理清了逻辑时序, 剩下的设计就是做填空题了。

简单总结了有限状态机的一种设计方式, 详细参见 <<Circuit Design with VHDL>>  chapter 8  State Machines

1  有限状态机

  

2  VHDL模板之一

1)  端口定义

library  IEEE;
use  ieee.std_logic_1164.all;

--!  端口定义
entity  <entity_name> is
port
(
    INPUT     :  in  <data_type>;
    RST        :  in  std_logic;
    CLK        :  in  std_logic;
    OUTPUT  :  out  <data_type>
);
end  <entity_name>;

entity

2)  状态定义

--!  结构体
architecture  <arch_name>  of  <entity_name>  is

type  state  is (state0, state1, state2, ...);
signal  c_state, n_state :  state;

begin

end  <arch_name>;

architecture

3)  时序逻辑

pfsmsyn:  process (rst, clk)
begin
  if (rst = ‘1‘) then
    c_state <= state0;
  elsif (clk‘event and clk=‘1‘) then
    c_state <= n_state;
  endif;
end process;

process: clock

4)  组合逻辑

pfsmlogic: process (input, c_state)
begin
  case  c_state  is
    when  state0  =>
        if (input = ...) then
            output <= <value>;  --输出
            c_state <= state1;    --状态
        else ...
        end if;
    when  state1 =>
        ...  ...
        ...  ...
        ...  ...
    when others =>
        ...  ...

  end case;
end process;

process: logic

时间: 2024-10-27 04:19:39

有限状态机VHDL模板的相关文章

编程题 模板生成系统

题目来自2015年09月CCF计算机职业资格认证考试 问题描述 成成最近在搭建一个网站,其中一些页面的部分内容来自数据库中不同的数据记录,但是页面的基本结构是相同的.例如,对于展示用户信息的页面,当用户为 Tom 时,网页的源代码是 而当用户为 Jerry 时,网页的源代码是 这样的例子在包含动态内容的网站中还有很多.为了简化生成网页的工作,成成觉得他需要引入一套模板生成系统. 模板是包含特殊标记的文本.成成用到的模板只包含一种特殊标记,格式为 {{ VAR }},其中 VAR 是一个变量.该标

unity3d 游戏人工智能开发之状态机(C#模板与示例)

Finite State Machine 状态机 This is a Deterministic Finite State Machine framework based on chapter 3.1 of Game Programming Gems 1 by Eric Dybsend. Therea are two classes and two enums. Include them in your project and follow the explanations to get the

Verilog HDL设计进阶:有限状态机的设计原理及其代码风格_zt

http://www.21ic.com/app/eda/201308/189781_1.htm 由于Verilog HDL和 VHDL 行为描述用于综合的历史还只有短短的几年,可综合风格的Verilog HDL 和VHDL的语法只是它们各自语言的一个子集.又由于HDL的可综合性研究近年来非常活跃,可综合子集的国际标准目前尚未最后形成,因此各厂商的综合器所支持的HDL子集也略有所不同. 本书中有关可综合风格的Verilog HDL的内容,我们只着重介绍RTL级.算法级和门级逻辑结构的描述,而系统级

vivado自定IP例化的问题,怎么生成VHDL的例化

在tools 下面选中project settings.然后选targat language为VHDL .这样就会生成一个以VHDL语言为模板的ip. 转载:https://zhidao.baidu.com/question/2078274187164889428.html?qbl=relate_question_1&word=vivado%C9%E8%D6%C3IP%BA%CB%C9%FA%B2%FAVerilog 原文地址:https://www.cnblogs.com/chengqi521

Vue.js项目模板搭建

前言 从今年(2017年)年初起,我们团队开始引入「Vue.js」开发移动端的产品.作为团队的领头人,我的首要任务就是设计 整体的架构 .一个良好的架构必定是具备丰富的开发经验后才能搭建出来的.虽然我有多年的前端开发经验,但就「Vue.js」来说,仍然是个新手.所幸「Vue.js」有一个配套工具「Vue-CLI」,它提供了一些比较成熟的项目模板,很大程度上降低了上手的难度.然而,很多具体的问题还是要自己思考和解决的. 项目划分 我们公司的H5产品大部分是嵌套在手机客户端里面的页面.每个项目的功能

ac自动机基础模板(hdu2222)

In the modern time, Search engine came into the life of everybody like Google, Baidu, etc. Wiskey also wants to bring this feature to his image retrieval system. Every image have a long description, when users type some keywords to find the image, th

hdu 2966 In case of failure kdtree模板题

问求每个点距离平方的最小的点 kd-tree模板题…… 1 #include<bits/stdc++.h> 2 #define cl(a,b) memset(a,b,sizeof(a)) 3 #define debug(x) cerr<<#x<<"=="<<(x)<<endl 4 using namespace std; 5 typedef long long ll; 6 typedef pair<int,int>

eclipse添加xml模板

//因为学javaee,中框架,,感觉配置文件好多, window-preferences-xml-xmlfiles-editor-templates-选中模板,-edit

POJ3528 HDU3662 三维凸包模板

POJ3528 HDU3662 第一道题 给定若干点 求凸包的表面积,第二题 给定若干点就凸包的面数. 简单说一下三维凸包的求法,首先对于4个点假设不共面,确定了唯一四面体,对于一个新的点,若它不在四面体内,为了让它进入凸包, 则对于所有凸包上的边,若边的一面是该点可以看到的而另一面看不到,则该点与该边构成的面要加入凸包. 模板代码非常清晰, #include<stdio.h> #include<algorithm> #include<string.h> #includ