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

下面给出了有限状态机的标准设计,分别为 VHDL 和 Verilog 代码

1  有限状态机

  

2  VHDL模板一

library  IEEE;
use ieee.std_logic_1164.all; --! 1) 端口定义
entity <entity_name> is
port
(
DIN : in <data_type>;
RST : in std_logic;
CLK : in std_logic;
DOUT : out <data_type>
);
end <entity_name>; --! 2) 状态定义
architecture <arch_name> of <entity_name> is type state is (IDLE, ST1, ST2, ...);
signal c_state, n_state : state; begin --! 3) 时序逻辑
pfsmsyn: process (rst, clk)
begin
if (rst = '') then
c_state <= IDLE;
elsif (clk'event and clk='') then
c_state <= n_state;
endif;
end process; --! 4) 组合逻辑
pfsmlogic: process (din, c_state)
begin
case c_state is
when IDLE =>
if (din = ...) then
dout <= <value>; -- 输出
c_state <= state1; -- 状态
else ...
end if;
when ST1 =>
... ...
... ...
... ...
when others =>
... ... end case;
end process; end <arch_name>;

3  Verilog模板一

// 1) 端口声明
module fsm(clk, rst, ctrl, dout);
input clk, rst, ctrl;
output [n-:] dout; // n 取决于输出值的位数
reg [n-:] dout; // 2) 状态定义
parameter IDLE = , ST1 = , ST2 = , ST3 = , ....;
reg [m-:] c_state, n_state; // m 取决于‘“状态”数量的位数 // 3) 时序逻辑
always @ (posedge clk or posedge rst)
begin: SEQ
if (rst)
c_state = IDLE;
else
c_state = n_state;
end // 4) 组合逻辑
module @ (ctrl or c_state)
begin: COMB
case (c_state)
IDLE: begin
dout = <value0>;
n_state = ST1;
end
ST1: begin
dout = <value1>;
n_state = ST2;
end
ST2:
. . . . . .
. . . . . .
. . . . . .
endcase
end endmodule

参考资料:

<Circuit Design with VHDL>  chapter 8  State Machines

<HDL Chip Design>

有限状态机HDL模板的更多相关文章

  1. 基于Unity有限状态机框架

    这个框架是Unity wiki上的框架.网址:http://wiki.unity3d.com/index.php/Finite_State_Machine 这就相当于是“模板”吧,自己写的代码,写啥都 ...

  2. 基于Verilog HDL整数乘法器设计与仿真验证

    基于Verilog HDL整数乘法器设计与仿真验证 1.预备知识 整数分为短整数,中整数,长整数,本文只涉及到短整数.短整数:占用一个字节空间,8位,其中最高位为符号位(最高位为1表示为负数,最高位为 ...

  3. 有限状态机FSM(自动售报机Verilog实现)

    有限状态机FSM(自动售报机Verilog实现) FSM 状态机就是一种能够描述具有逻辑顺序和时序顺序事件的方法. 状态机有两大类:Mealy型和Moore型. Moore型状态机的输出只与当前状态有 ...

  4. 如何高效的编写Verilog HDL——进阶版

    博主之前写过一篇文章来谈论如何高效的编写Verlog HDL——菜鸟版,在其中主要强调了使用Notepad++来编写Verilog HDL语言的便捷性,为什么说是菜鸟版呢,因为对于新手来说,在还没有熟 ...

  5. gVim编辑器 模板篇

    上文介绍了gVim的常用操作,这次总结一下我自己常用的模板. 安装和配置好gVim后,在Program Files (x86)\Vim目录下有个“_vimrc”文件,双击选择gVim软件打开,在里面添 ...

  6. html5引擎开发 -- 引擎消息中心和有限状态机 - 初步整理 一

    一 什么是有限状态机        FSM (finite-state machine),又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型.他对于逻辑以及 ...

  7. 转载.怎样在Quartus II中转化HDL文件为bsf文件?

    步骤1 新建或打开Quartus II工程,用QII自带文本编辑器打开HDL文件. 图1 用QII自带的文本编辑器打开HDL文件 步骤2 选择File>Create / Update>Cr ...

  8. 算法复习——网络流模板(ssoj)

    题目: 题目描述 有 n(0<n<=1000)个点,m(0<m<=1000)条边,每条边有个流量 h(0<=h<35000),求从点 start 到点 end 的最 ...

  9. win7+vim搭建+verilog HDL IDE

    参考地址:http://www.huangdc.com/421 参考文章为2016年,部分更新贴于文章内了 安装下载vim vim在win下叫gvim,下载地址:https://www.vim.org ...

随机推荐

  1. wrong requestcode when using startActivityForResult

    You are calling startActivityForResult() from your Fragment. When you do this, the requestCode is ch ...

  2. ExecutorService常用方法和newFixedThreadPool创建固定大小的线程池

    1.ExecutorService: 是一个接口,继承了Executor: public interface ExecutorService extends Executor { } 2.Execut ...

  3. 关于SQL2008 “不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了‘阻止保存要求重新创建表的更改’” 解决方案

    不允许保存更改.您所做的更改要求删除并重新创建以下表.您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建表的更改” 解决方法:  打开SQL SERVER 2008 工具-->选项- ...

  4. .NET Core应用程序的2种部署方式

    1. Portable 共享.NET Core运行时环境与程序集依赖,部署的目标机器上需要事先安装.NET Core SDK,这是.NET Core的默认部署方式. 2. Self-contained ...

  5. rabbitmq学习笔记2 基本概念

    官网:http://www.rabbitmq.com 参考:http://blog.csdn.net/column/details/rabbitmq.html   1 基本概念 rabbitmq se ...

  6. HTML5中的音视频处理

    * 音视频处理 * 视频处理 * 基本内容 * 使用Flash技术处理HTML页面中的视频内容 * 包含音频.动画.网页游戏等 * 特点 * 浏览器原生不支持(IE浏览器要求安装ActiveX组件) ...

  7. 上载EXCEL到SAP系统的方法之一

    TEXT_CONVERT_XLS_TO_SAP实例 使用:gui_upload去上传excel数据,每次都出现乱码,不管中文英文都乱码. 至今不知道gui_upload是否支持excel文件上传,. ...

  8. DevExpress.XtraGrid.Views 设置指定行的背景颜色 .

    如需要将指定行的背景设置颜色,可参考以下示例 1.事件:CustomDrawCell 2.示例: private void gridView1_CustomDrawCell(object sender ...

  9. Android-Selector用法

    在项目开发的时候,由于系统给出的控件不够美观,因此开发时领导常常要我更改下界面,用美工给的图片取代系统图片.开始时,我只是给按钮等设置一下背景图片,这样做虽然美观了,但界面看起来却比较死板,比如用户点 ...

  10. 【读书笔记】iOS网络-HTTP-URL结构

    http://user:password@hostname:port/absolute-path?query. http:  协议 user:password@   认证 hostname:  主机名 ...