转载 使用触发器的置位和复位端口对设计进行优化

在设计时通过选取不同的寄存器模型也可以优化组合逻辑

在一个给定的器件中,大部分FPGA供应商都提供了各种触发器单元。对于一些给定的逻辑功能,综合工具通常都能采用触发器的置位和复位端口来实现,这样就大大减少了查找表的负担。举例来说,一个设计逻辑电路如图2-11所示。在这个例子中,综合工具就可以选择触发器的置位端口来实现组合逻辑功能,如图2-12所示。这样就是减少了逻辑门的消耗,同时还提高了数据路径的速度。同样的道理,我们来看如图2-13所示的逻辑功能,可以通过将输入信号直接连接到触发器的复位端口来去除与门并保持功能不变,如图2-14所示。

图2-11:带或门的简单同步逻辑

图2-12:或门由触发器的置位端口实现

图2-13:带与门的简单同步逻辑

图2-14:与门由触发器的复位端口实现

如果综合工具并没有使用上述优化手段,则根本原因在于逻辑设计中采用的相关复位策略。任何对复位的约束限制,不但将会消耗资源的置位和复位端口,而且也将会限制对厂家库单元使用的选择。因此,我们说资源的置位和复位端口被消耗可能会阻止某些组合逻辑的优化。

举例来说明,我们将要把下述代码在Xilinx的一个Spartan-3器件上实现。在这个实例代码中,一个外部复位信号被用于复位触发器的状态,如图2-15所示。

module setreset(

output reg oDat,

input iReset,iClk,

input iDat1,iDat2);

always @ (posedge iClk or negedge iReset)

if(!iReset)

oDat<=0;

else

oDat<=iDat1|iDat2;

endmodule

图2-15:简单的异步复位

如图2-15所示,一个可复位的触发器实现了一个异步复位能力,逻辑功能(或门)由一离散的逻辑门实现。作为替代方案,如果我们将复位移除,但是实现的逻辑功能不变,那么该设计将会被优化如图2-16所示。

图2-16:不带复位的优化结果

在这个实例中,综合工具可以使用FDS单元(带同步置位和复位的触发器,flip-flop with a synchronous set and reset)并且使用其置位端口来实现逻辑或操作。因此,通过允许综合工具选择一个带同步置位的触发器,我们可以在消耗零逻辑单元的情况下实现该实例功能。

如果更进一步讨论,我们还可以同时使用同步置位和复位端口来对设计进行优化。比如,如果我们需要实现下面逻辑等式所示的功能:

oDat <= !iDat3 & (iDat1 | iDat2)

那么我们可以通过下述硬件代码所示的方式来实现,在这个实现方式中,我们可以看到同步置位和复位资源同时被使用到。

module setreset(

output reg oDat,

input iClk,

input iDat1,iDat2,iDat3);

always @ (posedge iClk)

if (iDat3)

oDat<=0;

else if (iDat1)

oDat<=1;

else

oDat<=iDat2;

endmodule

在上述代码中,输入iDat3与相关触发器的复位端口有同样的优先级。所以这个逻辑功能可以像图2-17那样被实现。

图2-17:使用触发器的置位和复位端口进行优化

如图2-17所示,根据前面的逻辑等式在这个电路中一共有三种逻辑操作(取反、逻辑与和逻辑或),我们看到所有这些操作都由一个触发器来实现,未消耗一个查找表。由于这些优化在设计代码阶段总是不太容易获知,所以当一个设计的面积是一个关键考虑因素的时候,请尽可能避免使用触发器的置位和复位端口。

时间: 2024-12-30 00:19:39

转载 使用触发器的置位和复位端口对设计进行优化的相关文章

【小白到大牛之路12】交换机后台管理之端口管理的再次优化

项目12交换机后台管理之端口管理的再次优化项目精讲 1.为什么要使用指针 函数的值传递,无法通过调用函数,来修改函数的实参. 2.指针定义 指针是什么 指针本质是一个地址值: #include <stdio.h> int main(void){ int age; //定义了一个指针 //指针是一个变量 //这个变量的名称是 p //这个指针,可以用来指向一个整数! //就是说:p的值是一个整数的地址!!! int * p; //指针p指向了age //p的值,就是变量age的地址 p = &a

常见端口对应服务-有待优化更新

各种端口以及相应的服务 1 tcpmux TCP 端口服务多路复用 5 rje 远程作业入口 7 echo Echo 服务 9 discard 用于连接测试的空服务 11 systat 用于列举连接了的端口的系统状态 13 daytime 给请求主机发送日期和时间 17 qotd 给连接了的主机发送每日格言 18 msp 消息发送协议 19 chargen 字符生成服务:发送无止境的字符流 20 ftp-data FTP 数据端口 21 ftp 文件传输协议(FTP)端口:有时被文件服务协议(F

(转载)浅谈我对DDD领域驱动设计的理解

原文地址:http://www.cnblogs.com/netfocus/p/5548025.html 从遇到问题开始 当人们要做一个软件系统时,一般总是因为遇到了什么问题,然后希望通过一个软件系统来解决. 比如,我是一家企业,然后我觉得我现在线下销售自己的产品还不够,我希望能够在线上也能销售自己的产品.所以,自然而然就想到要做一个普通电商系统,用于实现在线销售自己企业产品的目的. 再比如,我是一家互联网公司,公司有很多系统对外提供服务,面向很多客户端设备.但是最近由于各种原因,导致服务经常出故

异步复位同步释放

同步复位与异步复位的优缺点 同步复位的优点: 一般能够确保电路是百分之百同步的. 确保复位只发生在有效时钟沿,可以作为过滤掉毛刺的手段. 同步复位的缺点: 复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位.同时还要考虑如:时钟偏移.组合逻辑路径延时.复位延时等因素. 由于大多数的厂商目标库内的触发器都只有异步复位端口,采用同步复位的话,就会耗费较多的逻辑资源. 异步复位优点: 异步复位信号识别方便,而且可以很方便的使用全局复位. 由于大多数的厂商目标库内的触发器都有异步复位端口,

学习FPGA100个值得注意的要点(转载)

1.FPGA不是编程语言,而是一种可综合的硬件描述语言.2.Verilog 支持两种进程initial和always进程3.阻塞与非阻塞指的相对于进程本身而言的.4.使用进程模块的电路类型:                       组合电路-----对组合逻辑中使用的所有输入敏感                      例子:                      [email protected](a or b or sel)                      时序电路---

同步复位和异步复位二者各自的优缺点是什么呢?

同步复位:当时钟上升沿检测到复位信号,执行复位操作(有效的时钟沿是前提).always @ ( posedge clk ); 优点: a.有利于仿真器的仿真:b.可以使所设计的系统成为 100% 的同步时序电路,有利于时序分析,而且可综合出较高的 Fmax:c.由于只在时钟有效电平到来时才有效,所以可以滤除高于时钟频率的复位毛刺. 缺点: a.复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位任务.同时还要考虑诸如 clk skew .组合逻辑路径延时 .复位延时等因素(所以复位信

VHDL:信号、端口以及和Verilog的区别

1.信号 信号是描述硬件系统的基本数据对象,它的性质类似于连接线.信号可以作为设计实 体中并行语句模块间的信息交流通道.      信号作为一种数值容器,不但可以容纳当前值,也可以保持历史值(这决定于语句的表达方式).这一属性与触发器的记忆功能有很好的对应关系,只是不必注明信号上数据流动的方向.信号定义的语句格式与变量相似,信号定义也可以设置初始值,定义格式是:   SIGNAL 信号名: 数据类型 := 初始值 :      同样,信号初始值的设置也不是必需的,而且初始值仅在 VHDL 的行为

[转载] TLS协议分析 与 现代加密通信协议设计

https://blog.helong.info/blog/2015/09/06/tls-protocol-analysis-and-crypto-protocol-design/?from=timeline&isappinstalled=0 最近发现密码学很有意思,刚好还和工作有点关系,就研究了一下,本文是其中一部分笔记和一些思考. 密码学理论艰深,概念繁多,本人知识水平有限,错误难免,如果您发现错误,请务必指出,非常感谢! 本文禁止转载 本文目标: 学习鉴赏TLS协议的设计,透彻理解原理和重

FPGA基础知识(四)锁存器、触发器、寄存器和缓冲器的区别

一.锁存器锁存器(latch)---对脉冲电平敏感,在时钟脉冲的电平作用下改变状态锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,仅当锁存器处于使能状态时,输出才会随着数据输入发生变化.锁存器不同于触发器,它不在锁存数据时,输出端的信号随输入信号变化,就像信号通过一个缓冲器一样:一旦锁存信号起锁存作用,则数据被锁住,输入信号不起作用.锁存器也称为透明锁存器,指的是不锁存时输出对于输入是透明的.锁存器(latch):我听过的最多的就是它是电平触发的,呵呵.锁存器是