通过仿真和综合认识D触发器(Verilog HDL语言描述D触发器)

目录

前言

硬件语言描述

测试文件

仿真图

综合工具综合后的原理图

综合介绍D触发器

维基百科介绍:

其他来源(课本):

8位的D触发器

Verilog HDL程序设计

测试文件:

仿真波形:

综合工具综合后的电路:

内部电路图(Technology Schematic)为:


前言

D触发器虽然基础,但很重要,扎实地掌握对于硬件电路学习者必不可少,传统地认识D触发器的过程大概是给出电路图,分析电路图,写出真值表,然后硬件语言描述,功能仿真,用综合工具综合出电路。

这对于直观的认识D触发器还是有点儿困难,个人觉得这种简单的电路,用Verilog HDL硬件语言描述可以直观地认识到它的功能,然后在观察其仿真波形,之后在用综合工具综合出相应的电路图来查看,再对其进行分析,会更符合至少是个人的认识规律。

分析电路原理图虽然不难,但是这个过程还是很繁琐,这里不打算进行这种分析。

下面直接给出1位D触发器的Verilog HDL硬件语言描述和测试文件;(包括异步清零和同步复位)

硬件语言描述

下面的硬件语言描述的是一个1为的D触发器,其功能为,当时钟上升沿到来时,输入信号d传输到输出端q,清零信号在always的敏感列表中,使得该触发器还具有异步清零的功能,rst为同步复位信号。

//1位D触发器Verilog HDL程序代码

module dff(clk,clr,rst,d,q);
input clk;
input clr,rst;
input d;
output q;
reg q;

always@(posedge clk or posedge clr)        //敏感源为时钟上升沿或清零信号的上升沿(异步清零)
begin
	if(clr == 1'b1)                          //清零信号有效时(高电平),输出清零
		q <= 1'b0;
	else if(rst == 1'b1)                    //复位信号有效时(高电平),输出置1(同步置1)
		q <= 1'b1;
	else                                    //二者都无效时,输出保持当前状态
		q <= d;
end

endmodule

测试文件

`timescale 1ns/1ps
module dff_tb;

wire q;
reg clk,clr,rst,d;

//时钟信号
always
begin
	# 10 clk = ~clk;
end

//初始化
initial
begin
	clk = 1'b0;
	clr = 1'b0;
	rst = 1'b0;
	d =1'b0;
	#10 rst = 1'b1;            //10ns后复位信号有效,此刻应该输出置1
	#10 clr = 1'b1; d = 1'b1;  //又过10ns,清零信号有效,
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李锐博恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值