使用D触发器实现8分频

这篇具有很好参考价值的文章主要介绍了使用D触发器实现8分频。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用D触发器实现8分频(verilog)

前言

最近闲来无聊玩了一阵子FPGA,其中遇到一个经典的问题,就是用verilog实现8分频器。发现自己并不是很熟练,所以就以blog的形式记录一下,同时也分享给大家。

所需要的前提条件:由verilog语言基础,知道D触发器的逻辑

第一步:visio画出8分频器的电路

要知道,几乎所有的编程语言都由模块化的思想包含在内,硬件描述语言也不例外。想要构建一个8分频器,首先需要了解它是怎么实现的。

8分频器的实现原理: 它是由三个由D触发器简单改造的二分频器级联构成的,即每经过一级输入的时钟频率变为原来的二分之一

二分频器

将一个D触发器的Q非门与D连接就形成了一个二分频电路

使用D触发器实现8分频

三个二分频器级联

将三个二分频器级联即可得到8分频器

使用D触发器实现8分频

第二步 按图施工,用verilog语言描述搭建好的电路

二分频器搭建

在DIV_2 图中我们发现,它的内部是一个D_FF(D触发器)。DIV_2将D和Q_NOTE_GATE连接到了一起。那条线就变成了一个模块内部的线,所以在verilog文件中我们要声明一个中间变量,在这里我取名为QD。

module DIV_2(	
	input wire clk,
	input wire rst_n,
	
	output wire Q
);
wire QD;  //声明的中间变量
//例化
D_FF D_FF(
	. clk(clk),
	. rst_n(rst_n),
	. D(QD),

	. Q(Q),
	. Q_NOT_GATE(QD)
);
endmodule

D触发器(D_FF)

因为实例化了D_FF,而且D_FF较为简单,我直接把D_FF的verilog描述源码贴在这里。

module D_FF(

	input wire clk,
	input wire rst_n,
	input wire D,

	output reg Q,
	output wire Q_NOT_GATE

	);

always @(posedge clk or negedge rst_n) begin
	if (~rst_n) //如果rst_n 是低电平,则Q置零
		Q <= 1'b0;
	else 
		Q <= D;
end
assign Q_NOT_GATE = ~Q;

endmodule

8分频器的实现

根据模块化思想,我们只需要在DIV_8.v中(调用)实例化三次2分频器即可。

	module DIV_8(
		input wire clk,
		input wire rst_n,

		output wire rs
		);
    //声明中间变量
	wire Q1;
	wire Q2;
	//实例化三次
	DIV_2 DIV_2_1(
		. clk(clk),
		. rst_n(rst_n),
		
		. Q(Q1)
		);
	DIV_2 DIV_2_2(
		. clk(Q1),
		. rst_n(rst_n),
		
		. Q(Q2)
		);
	DIV_2 DIV_2_3(
		. clk(Q2),
		. rst_n(rst_n),
		
		. Q(rs)
		);

	endmodule

第三步 搭建tb文件测试程序是否正确

已知8分频器的功能是将输入的clk信号频率变为原来的八分之一,所以我们看到的理想波形如下

使用D触发器实现8分频

搭建tb文件



`timescale 1ns/1ps
module DIV_8_tb();
    
	reg clk;
	reg rst_n;
	wire rs;
	
	initial begin
		clk = 1'b0;
		rst_n = 1'b0;
		#100.3
		rst_n = 1'b1;
	end
	
	always #10 clk = ~clk ;
	
	DIV_8 DIV_8(
		.clk(clk),
		.rst_n(rst_n),
		
		.rs(rs)
	);
endmodule

验证仿真波形

使用D触发器实现8分频文章来源地址https://www.toymoban.com/news/detail-512357.html

到了这里,关于使用D触发器实现8分频的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • unity 触发器的使用

    为了实现物体碰撞后执行代码 将图片中的IsTrigger 勾选,该对象就是拥有触发器了 触发触发器的物体需要带有刚体(Rigidbody) 例如:飞机碰到建筑物触发一段代码,则飞机需要带有Rigidbody属性,建筑物需要将IsTrigger勾选。 Rigidbody添加:在Inspector里,点击Add Component,搜索Rig

    2024年02月13日
    浏览(33)
  • (91)Verilog实现D触发器

    1)目录 2)FPGA简介 3)Verilog HDL简介 4)Verilog实现D触发器 5)结语 FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路

    2024年02月04日
    浏览(27)
  • 深入学习MYSQL-使用触发器

    触发器 每个表最多支持6个触发器,(insert,update,delete)之前和之后。 删除触发器 insert 触发器  在INSERT触发器代码内,可引用一个名为NEW的虚拟表,访问被插入的行;  在BEFORE INSERT触发器中,NEW中的值也可以被更新(允许更改被插入的值);  对于AUTO_INCREMENT列,N

    2024年02月05日
    浏览(36)
  • FPGA开发——VHDL实现各类触发器

    小编最近在学习时序电路的VHDL设计,通过此文对触发器和VHDL相关知识进行总结,以便日后进行复习、查阅。本文首先回顾了各类触发器的基本知识包括特性方程、状态图等,最后通过VHDL来实现各类触发器。 在实际的数字系统中往往包含大量的存储单元,而且经常要求他们在

    2024年02月04日
    浏览(34)
  • 如何使用SQL语句创建触发器

    🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔🍟🌯C语言进阶 🔑个人信条: 🌵知行合一 🍉本篇简介:记录SQL server触发器的创建语句,以及简单介绍. 触发器 是一种特殊类型的 存储过程 ,它不同于我们前面介绍过的存储过程。 存储

    2024年02月10日
    浏览(23)
  • Quartus 实现 D 触发器及时序仿真

    目录 Quartus 实现 D 触发器及时序仿真 一.Quartus 输入原理图及时序仿真 1.创建工程 2.创建方框文件 3.编译原理图文件 4.创建 vwm 格式波形文件 5.时序波形仿真 二.用 Verilog 语言实现 D 触发器及时序仿真 1.编写Verilog 文件 2.查看生成的电路图 3.利用 Verilog 语言编写测试代码实现时序

    2024年02月04日
    浏览(32)
  • mysql基础之触发器的简单使用

    1.建立学生信息表 2.建立学生补考信息表 3.建立触发器(一共建立了三个触发器) 4.插入数据 5.查询结果  查询s1表  查询s2表  

    2024年02月13日
    浏览(28)
  • 例化4个JK触发器实现4位计数

            闲来无事打个嵌入式校赛玩玩,旨在用FPGA实现4位计数器,其功能包括上计、下计、置位、复位、暂停。         具体实现大概要先从JK触发器的功能表入手:              JK触发器在J、K两个引脚接的输入信号不同时可以分别代替SR锁存器、T触发器,这也是

    2024年02月03日
    浏览(26)
  • Multisim实现D触发器模拟异步计数器

    这里用到的元器件有: DIgital power (VCC)数字电源 DIGITAL-CLOCK 数字时钟 逻辑分析仪 (XLA) ground 数字地 SPST 单刀单掷开关 74HC74D_4V D触发器芯片 DCD_HEX 数码管(带译码器四位二进制输入) PROBE 电位探测灯 PB_DPST 弹簧式触发开关 SPDT 单刀双掷开关 先来说说D触发器的原理: 74HC74D

    2024年02月10日
    浏览(47)
  • 数据库24:触发器的创建和使用(头歌云课)

      任务描述 相关知识 触发器的定义 触发器和存储过程的区别 触发器的优点 触发器的作用 触发器的分类 DML触发器 DDL触发器 登录触发器 触发器的工作原理 inserted表 deleted表 创建触发器 编程要求 测试说明 任务描述 本关任务:通过实验,加深对数据完整性的理解,掌握创建

    2024年02月05日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包