ZYNQ-fpga学习(三)锁存器的设计

verilog学习笔记6——锁存器和触发器 RS锁存器、D触发器、脉冲/边沿/电平触发方式 阅读详情

一、工作原理

 

         该电路主要是由两个部分组成,第一个部分是由 G1、G2 两个 与非门组成的 RS 锁存器,第二个部分是由 G3、G4 两个与非门组成的控制电路。C 为控制信号,用来控 制 G3 和 G4 的激励输入。

        当控制信号 C=0 时,根据与非门的逻辑定律,无论 D 输入 什么信号,RD 和 SD 信号同时为 1。根据由与非门组成的 RS 锁存器的逻辑定律,RD 和 SD 都同时等于 1的话,锁存器的输出端 Q 将维持原状态不变。

        当控制端 C=1 时,如果此时 D=0,SD 就等于 1,RD就等于 0,根据 RS 锁存器的逻辑规律,电路的结果就为 0 状态;如果 D =1,那么 RD 就等于 1,SD 也就 等于 0,锁存器的结果就为 1 状态。

二、Verilog代码 

module D_latch(
	input c,
	input d,
	output reg q
    );
	always@(*)
		begin
		if(c==1'b1)
			q=d;
		end
endmodule

三、tb代码

`timescale 1ns / 1ps

module tb_dlatch();
	reg c;
	reg d;
	wire q;
	
initial
	begin
	c=1;d=0;
	#100
	c=1;d=1;
	#100
	c=0;d=0;
	#100
	c=0;d=0;
	#100
	c=1;d=0;

	end
	D_latch dlatch(
	.c(c),
	.d(d),
	.q(q)
	);
endmodule

四、仿真结果 

五、RTL原理图 

注意:在绝大多数设计中我们要避免产生锁存器。它会让你设计的时序出问题,并且它的隐蔽性很强,很难查出问题。锁存器最大的危害在于对电平信号敏感,容易产生毛刺和影响工具进行时序分析,这对于 下一级电路是极其危险的。所以,只要能用触发器的地方,就不用锁存器。

 

ZYNQ学习笔记:基本介绍 即可编程IO单元,可以设置引脚特性。Zynq 上的通用输入/输出功能(IOB)合起来被称作 SelectIO 资源,它们一般被组织成 50 个 IOB 一 组。每个 IOB 有一个焊盘,是与外部世界连接来做单个信号的输入或输出的。每个 IOB 还包含一个 IOSERDES 和 IODELAY 资源,可以做并行和串行数据的可编程转换。 阅读详情

相关推荐

Vivado 2024.1 配置约束详解:纯FPGA与ZYNQ的5个关键参数差异

本文深入解析了Vivado 2024.1中纯FPGA与ZYNQ平台在配置约束上的5个关键差异,包括配置架构、电压参数、配置效率优化、配置模式支持及设计迁移实践。通过详细对比和实用示例,帮助开发者优化bit文件生成,提升配置效率,避免常见陷阱。

weixin_30326741的博客 475

verilog实现RS锁存器

verilog实现RS锁存器。

weixin_44698673的博客 1140

ZYNQ学习一、了解

时序分析,学习FPGA时需要掌握时序分析的目的是因为,数据在不同的逻辑单元之间传递的时候会有时间延迟,这些延迟可能会影像数据的正确采样以及处理,时序分析的目的是确保数据在逻辑单元之间传递时满足建立时间和保持时间的要求。7系列的FPGA,采用了一种新的架构,其中CLB被进步细分为更小的逻辑单元,一个CLB包含四个Slice,每个Slice包含4个6输入的查找表(LUT)和八个触发器加上算数运算逻辑,通常情况下每个Slice的四个触发器未被使用,另外四个触发器与查找表(LUT)相连配置成为锁存器。

hxgz31415926535的博客 935

Veriolg R'S'锁存器

简介: 写一个R’S’锁存器,其基本功能为:置0 置1 保持。 由其基本功能可知R’S’锁存器的真值表,逻辑表达式,逻辑电路图如下: Verilog代码实现: /*------------------------------------- Filename: RS_latch.v Function: 用两个与非门构成的R'S'锁存器 Author: Zhang Kaizhou Date: 2...

田野麦子 3100

FPGA工程师系统学习路线:从数字电路到Zynq与PCIe的完整进阶指南

数字电路和硬件描述语言是FPGA开发的基石,而时序约束与仿真验证则是从“能跑”迈向“能交付”的关键分水岭。在工程实践中,FPGA工程师不仅需要掌握Verilog语法,更要具备通过Testbench、ILA等工具进行波形级调试的能力。随着嵌入式与可编程逻辑的融合,Zynq SoC的PS-PL协同设计、AXI总线互连以及DDR、PCIe等高速接口的调试,已成为岗位的核心竞争力。本文以循序渐进的阶段式路线为骨架,从组合逻辑、状态机等基础概念出发,逐步覆盖时序收敛、接口存储、SoC协同与领域算法落地,并配套完整的项

weixin_28720767的博客 255

ZYNQ FPGA IO扩展板硬件原理与Verilog驱动设计

FPGA GPIO扩展是嵌入式系统连接物理世界的基础接口,其核心在于引脚约束、电平标准匹配与确定性时序控制。基于ZYNQ-7000平台的IO扩展板集成了拨码开关、LED、矩阵键盘和数码管等典型外设,需通过精确的XDC约束(PACKAGE_PIN/IOSTANDARD)实现硬件直连,并依托同步时序逻辑保障信号路径延迟可控。该架构天然支持组合逻辑直通(如SW→LED)、状态机扫描(按键消抖)和动态扫描(数码管)三类基础数字电路范式,广泛应用于工业HMI、教学实验及原型验证场景。本文围绕RO扩展板展开,详解其在V

weixin_31800911的博客 77

数字电路基础---锁存器

锁存器(俗称 Latch)是数字电路中的一种具有记忆功能的逻辑元件。出现 latch 在组合逻辑中出现的原因:if 语句或者 case 语句不完整的描述,比如 if 缺少 else 分支,case 缺少 default 分支,导致代码在综合过程中出现了latch。解决办法就是 if 必须带 else 分支,case 必须带 default 分支。只有不带时钟的 always 语句的 if 或者 case 语句不完整才会产生 latch,带时钟的语句 if 或者 case 语句不完整描述不会产生 latch。

yishuihanq的博客 1万+

FPGA多路选择器实战:ZYNQ 7020按键控制LED,3步完成板级验证

本文详细介绍了基于Xilinx ZYNQ 7020开发板的FPGA多路选择器实战项目,通过Verilog代码编写、仿真验证到板级调试的全流程。重点讲解了2选1多路选择器的三种实现方式,包括组合逻辑电路设计、Testbench编写及硬件连接要点,帮助开发者快速掌握FPGA开发中的RTL设计技巧。

an4455的博客 455

FPGA Verilog/VHDl 中的锁存latch

在做FPGA设计时,我们要求在组合逻辑设计时,case或者if-else条件要完整,否则会产生锁存。本文主要介绍锁存产生的原因和影响,以及如何规避锁存的产生。

u014035968的博客 1770

数组的硬件起点:SR锁存器如何构建物理存储阵列

数组作为编程中最基础的数据结构,其本质是内存中连续地址空间的逻辑组织;而支撑这一抽象的硬件基石,是具备双稳态特性的SR锁存器——它通过交叉耦合门电路实现无时钟电平触发的记忆能力,构成SRAM单元的核心。这种物理单元的稳定保持、地址译码驱动与行列寻址机制,共同决定了内存访问的时序约束、功耗特性及存储密度。从FPGA中的Block RAM到CPU缓存,所有‘数组’的高效运行,都依赖于SR锁存器在建立/保持时间窗口内的可靠锁存行为。理解其禁止态成因、亚稳态风险与消抖必要性,是打通软硬协同、规避硬件级数据错位的关键

weixin_33924770的博客 332

FPGA面试题目笔记(一)——FPGA开发流程、亚稳态和竞争冒险、建立保持时间、异步FIFO深度等

同步异步电路、同步异步复位、时钟偏移和抖动、最小工作周期计算、触发器锁存器

H19981118的博客 1万+

Xilinx FPGA——Vivado生成bit文件时需要添加的约束

Vivado设计过程中生成的bit流文件需要通过特定的配置引脚导入到FPGA中。专用配置引脚上的不同电压级别决定了不同的配置模式。不管是哪种配置模式,配置数据都是存储在FPGA中的CMOS锁存器中,每次掉电后数据都会丢失,上电之后重新配置。但是选择一个片外存储器如SPI Flash存储配置数据,并设置相应的配置模式,上电后可以自动配置FPGA。UG470和UG570分别对7系列和UltraScale系列的配置方法做了详细介绍。本文只介绍在Vivado中的设置方法。

Alonger1988的博客 1万+

机器学习实例(预测房价中位数)(附代码)

1、下载数据: 下载一个压缩文件housing.tgz即可,其包含housing.csv(已经包含书有数据。),用 tax xzf housing.tgz 来解压提取CSV文件。 import os import tarfile import urllib.request DOWNLOAD_ROOT = "https://raw.githubusercontent.com/ageron/handson-ml2/master/" HOUSING_PATH = os.path.join("datasets",

qq_51153436的博客 2755

ZYNQ学习之路4.ZYNQ通过GP口读取PL内部RAM数据

实验环境:window 7 64 bit, vivado 2017.1, ZTURN board. 参考手册:Xilinx Distributed Memory Generator 在ZYNQ开发中,经常需要PS与PL进行数据交互。当数据量比较大时往往需要先缓存一部分然后批量传输到Linux系统,否则中断响应时间无法满足要求,使用双端口RAM或许是一种不错的方法。本文详细描述P...

亦梦云烟的博客 7762

无法获得下列放可solidworks standard 无法连接到服务器-15,10,10061如何解决?

无法获得下列放可solidworks standard 无法连接到服务器-15,10,10061如何解决?

qq_63539957的博客 2万+

快速傅里叶变换(FFT)原理详解:从理论到实践

本文系统介绍了快速傅里叶变换(FFT)的理论与实践。首先阐述了傅里叶变换的数学定义和离散傅里叶变换(DFT)的矩阵表示,指出其O(N²)计算复杂度限制了实际应用。然后详细解析了Cooley-Tukey算法的核心思想,包括分治策略、蝶形运算原理和旋转因子的周期性特性,将复杂度降至O(Nlog₂N)。文章比较了按时间抽取(DIT)和按频率抽取(DIF)两种FFT算法实现,并讨论了FFT在信号处理等领域的应用及其局限性。通过理论分析和实例说明,展现了FFT如何成为现代数字信号处理的基石算法。

qq_42212808的博客 2923

FPGA/ZYNQ驱动AD5420芯片

fpga/zynq驱动AD5420芯片,时序图、代码及实验结果

weixin_54701381的博客 2464

平衡电桥检测高压绝缘电阻的原理

检测绝缘漏电的高压拓扑如下:BMU需要连接BAT+,BAT-和PE线,并测量电池总压(Ubatt)和负母线电压(Un),并计算出正母线电压(Up)。

booksyhay的专栏 1万+

ZYNQ_PL_FPGA

FPGA之硬件基础 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示; 增加了 图片拖拽 功能,

qq_41782879的博客 1164

OpenCV实战系列——图像线条提取

基于内容的图像分析,需要从构成图像的像素集合中提取有意义的特征。轮廓、线条、区域等是基本的图像基元,可用于描述图像中包含的元素。本节将介绍如何提取重要的图像线条特征。

m0_58523831的博客 1万+

一个超酷的开源uHand2.0机械手掌项目

uHand2.0是深圳乐幻索尔公司开源的一款机械手掌,它长下面这个样子:1、uHand2.0外观图之前在公众号就分享过视频:学习嵌入式可以带娃,不信你们看2、uHand2.0硬件原理图看...

Bruce.yang的嵌入式之旅 4457

基于ZYNQ阵列涡流检测系统硬件设计(一)

算法将感应电压信号进行阻抗分解,实现感应信号实部、虚部和相位差的获得。在选取激励多路复用开关的时候需要考量的是多路开关最大可通过的电。流值,很遗憾大部份整合度高的多路开关的可通过电流值都很小,目前发现了一种但是。应线圈的感应信号,检验设计的硬件系统输出激励和接收感应信号的能力以及数字相敏。出信号进行相位计算并与数值相敏检波算法计算的相位进行对照,验证系统设计。感应线圈的感应信号会被。强大的扩展性,又降低了开发难度,提高了数据传输的稳定性。总线,两者之间的数据传输是通过乒乓缓存的方式进行,

YEYUANGEN的专栏 3682

生物量预测:基于Swin-Unet模型的生物量模型预测

本文提出了一种基于Swin-Unet架构的多源遥感地上生物量(AGB)预测方法。该方法整合了光学影像、SAR雷达影像、气候环境参数以及地形数据(坡度和坡向)等多源信息,通过24个输入通道(13+2+7+1+1)构建预测模型。研究采用Min-Max归一化预处理数据,并使用80%训练集、16%验证集和20%测试集的划分策略。模型基于Swin-Unet 2D架构,设置64个初始滤波器、4层深度、4×4堆叠数和2×2补丁大小。该方法通过整合多源遥感数据和先进深度学习架构,为AGB反演提供了新的解决方案。

此星光明博客 61

ZYNQ7020学习历程

PL端的开发采用软件Vivado,通过Verilog HDL硬件描述语言实现,学习PL端开发时我选择学习的是Verilog语言,该语言主要是数字电路的编程实现,我们开始学习的时候不需要特别精通,只需要了解基础的语法内容:数据类型,赋值操作(阻塞赋值以及非阻塞赋值),寄存器锁存器等基本概念即可;也是较为常见的使用方式。3、基与AXI DMA进行数据交互:主要实现PL对PS端的数据读写访问,当需要传输的数据量较大,地址连续的情况,为了减少CPU资源的浪费,通过DMA进行数据传输是一种有效的方式。

m0_61275923的博客 2883

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ZYNQ 之 FPGA 开发(语法篇2)

大家的风格都不一样, 如果不统一的话,后续维护、重用等会有很大的困难,即使是自己写的代码,几个月后再看也会变的很陌生,也会看不懂(您可能不相信,不过笔者和同事交流发现大家都是这样的,时间长不看就忘记了),所以编程规范的重要性显而易见。两者的基本功能是一样的,都可以存储数据。采用这种描述方法虽然代码结构复杂了一些,但是这样做的好处是可以有效地滤去组合逻辑输出的毛刺,同时也可以更好的进行时序计算与约束,另外对于总线形式的输出信号来说,容易使总线数据对齐,减小总线数据间的偏移,从而降低接收端数据采样出错的频率。

qq_41629803的博客 1200

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: ZYNQ-fpga学习(二)decoder的设计
下一篇: 计算机网络-网络层知识点
开卷真的有益
博客等级 码龄4年 30粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值