代码综合后的电路对比(不定时更新)

  这里来记录一下相似代码之间的不同差异,比如同步复位与异步复位触发器的对比,上升沿复位和下降沿复位的对比等等。这里主要使用ISE的综合引擎。直接附上代码和综合后电路图,有些会有部分讲解。

一、异步复位与同步复位

  我在复位电路里面讲解了同步复位和异步复位的区别,这里就不详细介绍了,链接如下:http://www.cnblogs.com/IClearner/p/6683100.html

(1)异步复位

异步复位的代码如下所示:

module DFF1(
  input clk,
  input rst_n,
  input d,
  output reg q
);

always@(posedge clk or negedge rst_n)
  if(!rst_n)
    q <= 0; //异步清 0,低电平有效
  else
    q <= d;

endmodule

 综合得到的电路图如下所示:

可以看到使用了一个反相器单元和一个触发器单元;从代码中我们可以推断出,这是一个高电平有效的、异步复位触发器

(2)同步复位

同步复位触发器代码如下所示,注意黑体部分

module DFF2(
  input clk,
  input rst_n,
  input d,
  output reg q
);

always@(posedge clk )//注意这里有所不同
  if(!rst_n)
    q <= 0; //同步清 0,低电平有效
  else
    q <= d;

endmodule

综合得到的电路如下所示:

我们可以看到,也是由一个反向器单元和一个触发器单元构成,注意,这里的触发器跟上面的触发器显然不是同一个类型的触发器,管脚名称改变了;结合代码我们可以知道,这个触发器是高电平触发、同步复位的触发器。

二、不同电平之间的复位差异

(1)高电平触发的异步复位VS低电平触发的异步复位

①高电平触发的异步复位(异步置位)

代码如下所示:

 1 module DFF3(
 2   input clk,
 3   input rst_r,
 4   input d,
 5   output reg q
 6 );
 7
 8 always@(posedge clk or posedge rst_r)
 9   if(rst_r)
10     q <= 0;
11   else
12     q <= d;
13
14 endmodule

DFF3

综合得到的电路如下所示:

根据代码,容易推断得出这是一个高电平、异步复位的触发器(或者叫异步置位),这也与前面的内容相符合。

②低电平触发的异步复位

代码和电路跟  一(1)的代码和电路相同,这里不进行重述。

(2)高电平触发的同步复位VS低电平触发的同步复位

①高电平触发的同步复位

代码如下所示:

 1 module DFF4(
 2   input clk,
 3   input rst_r,
 4   input d,
 5   output reg q
 6 );
 7
 8 always@(posedge clk )
 9   if(rst_r)
10     q <= 0;
11   else
12     q <= d;
13
14 endmodule

综合得到的电路如下所示:

可以知道,这是一个高电平有效、同步复位的触发器单元。

②低电平触发的同步复位

代码和电路同一(2),这里不进行重述

时间: 2025-02-01 17:00:25

代码综合后的电路对比(不定时更新)的相关文章

Tcl与Design Compiler (九)——综合后的形式验证

本文属于原创手打(有参考文献),如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/  ,作者:IC_learner 这里来讲一下formality的使用,貌似跟tcl和DC没有很强的联系:然而说没有联系,也是不正确的.在综合完成之后,可以进行形式验证.此外这里不是专门讲解formality的使用的,因此只会简单地实践一下它的用法. formality是Synopsys公司的形式验证工具,上一节我们得到了综合后的设计,这里我们就要验证综

做web项目时对代码改动后浏览器端不生效的应对方法(持续更新)

做web项目时,常常会遇到改动了代码,但浏览器端没有生效,原因是多种多样的,我会依据我遇到的情况逐步更新解决的方法 1.执行的时候採用debug模式,普通情况下使用项目部署button右边那个button下的tomcat7中的run即可,假设使用的是serves中的run serves,这样的情况貌似不会自己主动编译 2.点击project菜单下的clean选项,在打开的窗体中选择你使用的项目,ok,这样会删除tomcat容器中关于该项目的一些信息,然后又一次部署,执行 3.删除电脑中tomca

应对新兴威胁——国都兴业恶意代码综合监控系统发布

近日,国都兴业公司的慧眼恶意代码综合监控系统正式发布.该产品是国都兴业新一代全新应对新形势下网络安全威胁的多维度监控系统,能够实现安全威胁的全生命周期监控,在恶意代码的渗透阶段.潜伏阶段和攻击阶段实现全面监控覆盖,实现对各种高级.复杂的网络威胁与攻击.该技术理念属国内同类产品首创,并处于领先地位. 伴随着中国信息化的高速发展,网络安全形势也日趋复杂,面对着今天各种高级.复杂地安全威胁与攻击,依赖已知特征.规则及行为匹配模式进行检测.监测的传统安全产品(防火墙.IDS/IPS.防病毒网关)已无法应

js代码从页面移植到文件中失效或js代码修改后不起作用的解决办法

最近在做关于网站的项目,总是发生这样的问题 写的javascript代码在页面上没有问题,但是将js代码移植到.js的文件中,在页面上进行调用,总是出现失效等错误 另外修改后的js代码,重新刷新网页仍然不起作用 经过大量搜索并经过验证,可以用下面方法来解决 将js代码封装到js文件中失效的原因可能是js文件中存在中文注释,导致在执行的时候中断,在js文件尽量不要写中文注释 修改后的js代码刷新网页后不起效果可能是因为你所用的浏览器使用缓存的问题,可在浏览器中设置取消使用缓存,并删除临时文件,重启

Tomcat 7优化前及优化后的性能对比(转载)

一.运行环境 CPU: Intel(R) Pentium(R) [email protected]  : 内存:4G,装的是32位win7,只认出3G,没有花时间去整ramdisk之类的东西: 操作系统:win7 32位: JDK:1.7.0_55 Tomcat:7.0.53 大家不要笑,公司电脑,就给配这样的,慢的要死,悲剧! 下面所有测试都是基于1000个请求做的,且都是访问Tomcat默认的ROOT首页 二.未调优前 并发用户数从10-1000挨个测试,测试结果如下: 从上面的测试结果来看

做web项目时对代码修改后浏览器端不生效的应对方法(持续更新)

做web项目时,经常会遇到修改了代码,但浏览器端没有生效,原因是多种多样的,我会根据我遇到的情况逐步更新解决办法 1.运行的时候采用debug模式,一般情况下使用项目部署按钮右边那个按钮下的tomcat7中的run就行,如果使用的是serves中的run serves,这种情况貌似不会自动编译 2.点击project菜单下的clean选项,在打开的窗口中选择你使用的项目,ok,这样会删除tomcat容器中关于该项目的一些信息,然后重新部署,运行 3.删除电脑中tomcat文件夹,重新解压,然后在

C++代码反汇编后的堆栈寄存器EBP和ESP

最近在分析一个进程崩溃的严重问题,其中有些过程分析需要对ebp, esp 有清晰的理解,对于ebp 和esp 相信大家都很熟悉了,但是为了使本文自成体系,我还是解释一下. ebp--栈底指针 esp--栈顶指针 如图所示,简化后的代码调用过程如下: void Layer02() { int b = 2; } void Layer01() { int a = 1; Layer02(); } 那么函数执行过程中ebp和esp是如何变化的呢?如下是反汇编后的代码: void Layer02() { 0

Eclipse 代码修改后仍然是之前的运行结果

网上很多方法, 又重启编译器又clear的, 都没好使. 实际上是因为项目执行前没有自动保存, 而单单勾选project 中的 build  automatically是没有用的 . 将项目先save 一下, 执行就可以了. 当然还是自动保存比较方便. Windows-> preferences->run/debug>launching->save required dirty editors before launching Windows-> preferences-&g

Google Analytics 跟踪代码安装后状态总是显示&#39;未安装跟踪代码&#39;

最近要使用Google Analytics,但是在跟踪代码安装后状态总是显示'未安装跟踪代码'!如下所示:   在Google Analytics的帮助中“排查常见的跟踪设置错误”文章中找到了解决方法,拷贝适合多余空格导致. 附: 排查常见的跟踪设置错误 正确安装跟踪代码段后,最长需要 24 小时才能在帐户中看到数据.如果安装 24 小时后仍未看到任何数据,请查看下列可能的原因: 使用的代码段不正确和/或您查看了错误的帐户或视图如果您在跟踪多个网站和/或可以访问多个 Google Analyti