• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

计数器状态机触发器设计VHDL代码Quartus仿真

6小时前
132
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2411141T531N5.doc

共1个文件

名称:计数器状态机触发器设计VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

1.设计一个常用的组合逻辑电路

2.用VHDL语言设计一个XX进制计数器。要求:异步清零、以8421BCD码形式输出。

3.设计一个有限状态机。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

VHDL组成

library(程序库) package(程序包) entity(实体)architecture(构造体)configuration(配置)

信号与变量的区别

一 信号与变量的区别

1、声明形式与赋值符号不同

变量声明使用variable,赋值符号位:=

而信号声明用signal,复制符号为<=

2、有效域不同

信号的声明在结构体内部,进程、子程序及函数外部声明,而变量只能在进程,函数体,子程序内部进行声明。换句话说,信号的有效作用域为整个结构体,而变量只能在进程,函数体,子程序内部起作用,他们不能为多个进程所共用。

3、赋值操作及数据带入时刻不同

在进程中,信号赋值在进程结束时起作用(即整个进程执行到最后一条语句时进程接下来挂起时,数据才发生带入),而变量赋值是立即起作用的。如果在一个进程中多次为一个信号赋值时,只由最后一个值会起作用;而当为变量赋值时,变量值的改变是立即发生的。即变量将保持着当前值,直到被赋予新的值。

顺序语句只存在于进程和子程序内部。

4、使用

在实际应用中,信号的行为更接近硬件电路的实际情况,因此应该更多地使用信号进行电路内部的数据传递,只有在描述一些用信号很难描述的算法时,才用到变量。(也有人建议在同一进程内部传递的数据用变量,而在进程

间传递的数据建议用信号)但在以下几种情况只能使用变量:

(1)loop语句中,若在一个循环体内需要多次对某一个数据操作,则必须用变量,因为对信号赋值进行多次赋值只在最后一次才会有效。

(2)数组的索引(index)只能用变量。如果使用信号则编译会报错。

1. 信号(signal)

信号是逻辑电路中的连接线,可以用于元件间和元件内部电路各单元间的连接。

信号使用”<=“符号赋值。

在顺序描述语句中,信号的赋值不是即时更新的。只有在相应的进程、函数或过程完成之后,信号的值才会进行更新。

2. 变量(variable)

变量只用于局部电路的描述,只能在process、function和procedure内部使用。

变量使用”:=“符号赋值。

变量的赋值是立即生效的,可以在下一行代码中立即使用新的变量值。

3. 信号与变量赋值的生效时刻

信号与变量的一个重要差异是赋值是否立即生效。对变量的赋值是立即生效的,而在顺序描叙语句中对信号的赋值则不会立即生效,只有当信号所在的process内的操作全部完成一遍后,信号的值才会更新。

D触发器

1. 工程文件

2. 程序文件

3. 程序编译

4. 仿真图

55进制计数器

1. 工程文件

2. 程序文件

3. 程序编译

4. 仿真图

状态机

1. 工程文件

2. 程序文件

3. 程序编译

4. 仿真图

部分代码展示:

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
--D触发器逻辑电路
ENTITY?D_FF?IS
???PORT?(
??????D????:?IN?STD_LOGIC;
??????CP???:?IN?STD_LOGIC;
??????Q????:?OUT?STD_LOGIC;
??????Q_n??:?OUT?STD_LOGIC
???);
END?D_FF;
ARCHITECTURE?behave?OF?D_FF?IS
???
???SIGNAL?S_d???:?STD_LOGIC;
???SIGNAL?R_d???:?STD_LOGIC;
???SIGNAL?Q_d???:?STD_LOGIC;
???SIGNAL?Q_n_d?:?STD_LOGIC;
BEGIN

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1367

  • 2-2411141T531N5.doc
    下载

相关推荐