4位先行进位加法器的vhdl程序_VHDL学习笔记(1)

带有异步复位端的D触发器

f0c3d669aecabac3ea280f619bbb6d97.png
带有异步复位端的D触发器

1.原理:(D触发器是靠时钟的上升沿触发的,rst低电平使能)

rst=1时,无论时钟是什么状态,q均被置为低电平(0)

rst=0时,时钟为上升沿,输入的值传送给输出,即d的波形传送给q

时钟为下降沿,q被置为低电平(0)

2.代码:

LIBRARY 

3.代码解析:

LIBRARY 

库声明格式如上。lLIBRARY,USE是VHDL保留的关键字(“;”分号表示语句结束, “--”两个减号表示后续文字为注释,“.”小数点表示谁的谁,包含关系<描述的不太准确,见谅>)。第一句声明设计中使用ieee库,第二句声明使用ieee库的std_logic_1164包中的所有内容

库种类:库分为ieee库,std库,work库。 ieee库列举常用的包:std_logic_1164:逻辑系统;std_logic_arith:数据类型的转换;std_logic_signed;std_logic_unsigned。

重点来啦:std库与work库在程序中是默认可见的,不需声明,只有ieee库使用前需要声明。

ENTITY 

如上为实体结构(用来描述电路的输入输出引脚)语法结构如下:

ENTITY entity_name IS   
      PORT(
		port_name : signal_mode signal_type;
		port_name a,b,c : signal_mode signal_type;
END entity_name;

signal_mode有四种(IN;OUT;INOUT;BUFFER)

IN,OUT是单向引脚,INOUT是双向引脚,BUFFER输出一个引脚,但是输出信号可供电路内部使用 注意啦:OUT不能供电路内部使用

fe7ad047b9cd96ceb9c653546bda85c6.png
信号模式

signal_type包括BIT;STD_LOGIC;INTEGER

bit只有0,1两种状态

std_logice包括高阻(Z)等其他状态.

详细说明如下:

BIT是一个逻辑型的数据类型,端口为BIT类型时,该端口的信号取值只可能是“1”或“0”(“1”或“0”是值逻辑值),当端口为BIT_VECTOR时,该端口的取值可能是一组二进制的值(如某一数据总线输出端口具有8位的总线宽度,那么这样的总线端口的数据类型可以被说明为BIT_VECTOR).

STD_LOGIC是IEEE在1993年制定的新的标准(IEEE STD1164),它具有9种不同的值

'U'——初始值

'X'——不定

'0'——0

'1'——1

'Z'——高阻

'W'——弱信号不定

'L'——弱信号0

'H'——弱信号1

'-'——不可能的情况

考虑到D触发器是时序逻辑电路,输入信号d可能为其他形式的,用STD_LOGIC ???

ARCHITECTURE  

ARCHITECTURE部分为构造体(用来描述电路行为和实现功能),如上为语法结构 声明(需要时写):对信号和常量等进行声明 代码(BEGIN-END):描述电路行为和实现功能

PROCESS

PROCESS(进程) PROCESS(clk,rst)中(clk,rst)为敏感信号列表:敏感信号中的某个信号发生变化,PROCESS中的代码就顺序执行一次。类似与C中的条件 循环代码,VHDL的条件为信号的变化,如时钟信号的上升下降沿的出现,程序就会执行一次

clk 'EVENT:如果clk发生了变化,返回值为布尔值TRUE,否则返回FALSE,此处判断是否出现上升沿。IF(clk 'EVENT AND clk ='1')为搭配

IF语句是用于顺序代码的,只能用于PROCESS,FUNCTION,PROCEDURE中。 没什么好讲的,记住就可以了。格式为

IF 

"<="给信号赋值,如仿真图,只有“0”,“1”两种电平

":=" 给变量赋值

默认情况下,ENTITY中的所有端口都是信号

VHDL不区分大小写

4.仿真

1a3cd9aac5f462de68d25ad462806c2c.png

代码仿真软件:quartus 2

reference:VHDL数字电路设计教程

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值