verilog语法进阶,时钟原语

概述:

内容

1. 时钟缓冲

2. 输入时钟缓冲

3. ODDR2作为输出时钟缓冲

1. 输入时钟缓冲 BUFGP

verilog c代码,clk作为触发器的边沿触发,会自动将clk综合成时钟信号。

module primitive1(
	input clk,
	input a,
	output reg y
    );
always @ (posedge clk)
	y <= a;
	
endmodule

verilog原语代码


module primitive1 (
  clk, a, y
);
  input clk;
  input a;
  output y;
  wire a_IBUF_1;
  wire clk_BUFGP_3;
  wire y_OBUF_5;
  FD   y_1 (
    .C(clk_BUFGP_3),
    .D(a_IBUF_1),
    .Q(y_OBUF_5)
  );
  IBUF   a_IBUF (
    .I(a),
    .O(a_IBUF_1)
  );
  OBUF   y_OBUF (
    .I(y_OBUF_5),
    .O(y)
  );
  BUFGP   clk_BUFGP (
    .I(clk),
    .O(clk_BUFGP_3)
  );
endmodule

时钟信号可以去驱动触发器,时钟信号需要走时钟线路,通过一个BUFGP或者IBUFG进入时钟线路。通过时钟缓冲后,就可以去驱动触发器FD的时钟.C端口了。

RTL结构图,这是一个简单的时钟驱动触发器fd的示例

技术原理图

2. 输入时钟缓冲 IBUFG

原语代码


module primitive1 (
  clk, a, y
);
  input clk;
  input a;
  output y;
  wire a_IBUF_1;
  wire clk_BUFGP_3;
  wire y_OBUF_5;
  FD   y_1 (
    .C(clk_BUFGP_3),
    .D(a_IBUF_1),
    .Q(y_OBUF_5)
  );
  IBUF   a_IBUF (
    .I(a),
    .O(a_IBUF_1)
  );
  OBUF   y_OBUF (
    .I(y_OBUF_5),
    .O(y)
  );
  IBUFG  clk_BUFGP (
    .I(clk),
    .O(clk_BUFGP_3)
  );
endmodule

技术原理图,在输入端口除了可以用BUFGP外,还可以使用IBUFG

3. 输出时钟缓冲 ODDR2

ODDR2的工作原理

代码

module primitive1(
	input clk,
	output clk_o
    );

   ODDR2 #(
      .DDR_ALIGNMENT("NONE"), // Sets output alignment to "NONE", "C0" or "C1" 
      .INIT(1'b0),    // Sets initial state of the Q output to 1'b0 or 1'b1
      .SRTYPE("SYNC") // Specifies "SYNC" or "ASYNC" set/reset
   ) ODDR2_inst (
      .Q(clk_o),   // 1-bit DDR output data
      .C0(clk),   // 1-bit clock input
      .C1(~clk),   // 1-bit clock input
      .CE(1'b1), // 1-bit clock enable input
      .D0(1'b1), // 1-bit data input (associated with C0)
      .D1(1'b0), // 1-bit data input (associated with C1)
      .R(1'b0),   // 1-bit reset input
      .S(1'b0)    // 1-bit set input
   );
 
endmodule

原语代码,使用GND原语产生一个地线,使用VCC原语产生一个电源线,用于绑定固定点位输入端口。ODDR2有两个输入数据端口,两个时钟端口,时钟端口有180度相位差。时钟同时作为选择器输入端口,分别将两个触发器的输出选择输出出去。在输出端口就可以看到双速率输出的数据,这里把双速率输出的数据作为方波时钟使用。


module primitive1 (
  clk, clk_o
);
  input clk;
  output clk_o;
  wire N0;
  wire N1;
  wire ODDR2_inst_not0000;
  wire clk_BUFGP_4;
  wire clk_o_OBUF_6;
  GND   XST_GND (
    .G(N0)
  );
  VCC   XST_VCC (
    .P(N1)
  );
  ODDR2 #(
    .DDR_ALIGNMENT ( "NONE" ),
    .SRTYPE ( "SYNC" ),
    .INIT ( 1'b0 ))
  ODDR2_inst (
    .D0(N1),
    .D1(N0),
    .C0(clk_BUFGP_4),
    .C1(ODDR2_inst_not0000),
    .CE(N1),
    .R(N0),
    .S(N0),
    .Q(clk_o_OBUF_6)
  );
  OBUF   clk_o_OBUF (
    .I(clk_o_OBUF_6),
    .O(clk_o)
  );
  BUFGP   clk_BUFGP (
    .I(clk),
    .O(clk_BUFGP_4)
  );
  INV   ODDR2_inst_not00001_INV_0 (
    .I(clk_BUFGP_4),
    .O(ODDR2_inst_not0000)
  );
endmodule

RTL结构图,使用了一个ODDR2原语模块。

技术原理图

4. 总结

1. 时钟原语包含输入时钟原语与输出时钟原语,其中输出时钟原语使用ODDR2作为输出,官方说这个性能更加优越

2. 时钟用于驱动触发器的时钟,他需要走专门的时钟线,通过时钟缓冲输入到时钟线中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/252412.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++11特性篇】探究【右值引用(移动语义)】是如何大大提高效率?——对比【拷贝构造&左值引用】

前言 大家好吖&#xff0c;欢迎来到 YY 滴C11系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; 目录 一.【左值&左值引用】和【右值&a…

Leetcode 删除有序数组中的重复项

给你一个有序数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成 示例 1&#xff1a; 输入&…

超声波清洗机哪个好?怎么样挑选清洗力比较强超声波清洗机

大部分的年轻人&#xff0c;现在因为各种原因&#xff0c;戴眼镜的人群不再是局限于学生&#xff0c;很多打工族或者是老人也戴上了眼镜&#xff0c;近视眼或者是老花眼都有。戴眼镜的人群越来越多&#xff0c;会有很多人忽视眼镜清洗这个事情&#xff0c;眼镜长时间不清洗的话…

多层记忆增强外观-运动对齐框架用于视频异常检测 论文阅读

MULTI-LEVEL MEMORY-AUGMENTED APPEARANCE-MOTION CORRESPONDENCE FRAMEWORK FOR VIDEO ANOMALY DETECTION 论文阅读 摘要1.介绍2.方法2.1外观和运动对其建模2.2.记忆引导抑制模块2.3. Training Loss2.4. Anomaly Detection 3.实验与结果4.结论 论文标题&#xff1a;MULTI-LEVE…

云渲染技术下的虚拟现实:技术探索与革新思考

虚拟现实&#xff08;含增强现实、混合现实&#xff09;是新一代信息技术的重要前沿方向&#xff0c;是数字经济的重大前瞻领域&#xff0c;将深刻改变人类的生产生活方式&#xff0c;产业发展战略窗口期已然形成。但是虚拟现实想要深入改变影响我们的生活&#xff0c;以下技术…

PyQt6 QToolBar工具栏控件

锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计44条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话版…

【QT】时间日期与定时器

目录 1.时间日期相关的类 2.日期时间数据与字符串之间的转换 2.1 时间、日期编辑器属性设置 2.2 日期时间数据的获取与转换为字符串 2.3 字符串转换为日期时间 3.QCaIendarWidget日历组件 3.1基本属性 3.2 公共函数 3.3 信号 4.实例程序演示时间日期与定时器的使用 …

Linux c++开发-06-使用Linux API 进行文件的读写

先简单的介绍一下open,read,write 先用open接口去打开文件&#xff0c;flag表示打开文件的权限不同。 int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode);示例 结果&#xff1a;

学习MS Dynamics AX 2012编程开发 2. X++语言

X是用于构建Dynamics AX功能的编程语言。X是一种与C类似的面向对象编程语言。 完成本章后&#xff0c;您将能够理解X语言&#xff1b;您将知道可用的数据类型是什么&#xff0c;如何创建各种循环&#xff0c;如何比较和操作变量&#xff0c;在哪里可以找到预定义的函数&#x…

TypeScript编译环境配置

TypeScript 安装和配置 全局安装TypeScript语言的编辑器npm i -g typescript用vscode打开项目文件夹&#xff0c;右键选择在终端中打开&#xff0c;在终端中输入tsc -int // tsc是ts语言的编译器&#xff0c;c是compile的意思 &#xff0c;编译结果&#xff1a;在当前项目文件…

Java与前端:风云变幻的技术之路

前言 近日&#xff0c;有关“Java已死、前端已凉”的言论在IT圈内流传甚广&#xff0c;引起了广泛关注和讨论。这究竟是真相还是一场对技术人员的焦虑贩卖呢&#xff1f;让我们一同探讨这场技术风暴带来的变化与机遇&#xff0c;并分享一些实用的建议。 一、技术变革的常态 …

【微服务】Spring Aop原理深入解析

目录 一、前言 二、aop概述 2.1 什么是AOP 2.2 AOP中的一些概念 2.2.1 aop通知类型 2.3 AOP实现原理 2.3.1 aop中的代理实现 2.4 静态代理与动态代理 2.4.1 静态代理实现 三、 jdk动态代理与cglib代理 3.1 jdk动态代理 3.1.1 jdk代理示例 3.1.2 jdk动态代理模拟实现…

探索顺序表:数据结构中的秩序之美(c语言实现常见功能接口)

在我们的数据结构探索中&#xff0c;我们已经探讨时间复杂度、空间复杂度。大家可以移步到我的上篇文章&#xff1a; 打开数据结构大门&#xff1a;深入理解时间与空间复杂度 今天&#xff0c;我们将深入研究另一个重要的主题——顺序表 全部的源代码大家可以去我github主页…

【LangChain学习之旅】—(1) 何谓 LangChain

Reference&#xff1a;LangChain 实战课 【LangChain学习之旅】— 何谓 LangChain 如何理解 LangChainLangChain 中的具体组件LangChain调用ChatGPTLangChain代理功能 如何理解 LangChain 作为一种专为开发基于语言模型的应用而设计的框架&#xff0c;通过 LangChain&#xff…

07-抽象工厂

意图 提供一个创建一系列相关或相互依赖对象的接口&#xff0c;而无需指定它们具体的类。 适用性 在以下的情况可以选择使用抽象工厂模式&#xff1a; 一个系统要独立于它的产品的创建、组合和表示。一个系统要由多个产品系列中的一个来配置。要强调一系列相关的产品对象的…

关于Ubuntu22.04恢复误删文件的记录

挂载在Ubuntu22.04下的固态盘有文件被误删了&#xff0c;该固态盘是ntfs格式的。 在网上找了很多教程&#xff0c;最后决定用TestDisk工具进行恢复。 现记录如下&#xff1a; Ubuntu安装testdisk sudo apt-get install testdisk运行testdisk sudo testdisk得到 我选择的是…

不是生活有意思,是你热爱生活它才有意思

明制汉服的设计 同样是一款很重工的外套 细节上也是做到了极致 顺毛毛呢面料 领口袖口拼接仿貂毛环保毛条 前胸欧根纱刺绣圆形布 袖子贴民族风珠片刺绣织带 门襟搭配金属子母扣&#xff0c;真盘扣设计 时尚经典&#xff0c;搭配马面裙孩子穿上 真的很有气质奢华富贵 …

Day10 Liunx高级系统设计11-数据库2

DQL:数据查询语言 查询全表 select * from 表名; 查询指定列 select 列名 1, 列名 2,… from 表名 ; 条件查询 select * from 表名 where 条件 ; 注意&#xff1a; 条件查询就是在查询时给出 WHERE 子句&#xff0c;在 WHERE 子句中可以使用如下运算符及关键 字&#…

某行 webpack 加密算法分析

本次的目标是某行购物网站的加密算法分析&#xff0c;网站如下 aHR0cHM6Ly93d3cuemtoLmNvbS8&#xff08;注&#xff1a;该网站从整体上看来&#xff0c;是webpack加密&#xff0c;但是本文的实现方式&#xff0c;不是扣js代码也不补环境&#xff0c;因为最后分析此网站用的都…

把文化注入品牌,五粮液荣获“全国企业文化优秀成果特等奖”

执笔 | 萧 萧 编辑 | 扬 灵 12月15日&#xff0c;以“塑造优秀企业文化&#xff0c;凝聚企业发展力量”为主题的全国企业文化年会(2023&#xff09;首次在长江首城、中国酒都、中国动力电池之都宜宾盛大举行。 凭借“弘扬和美文化&#xff0c;谱写高质量发展新篇章”成果…