博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(筆記) 如何使用$skew? (SOC) (Verilog)
阅读量:6371 次
发布时间:2019-06-23

本文共 1347 字,大约阅读时间需要 4 分钟。

Abstract

$skew是Verilog所提供的專門用來做timing check的system task,可以檢查兩個信號間最大的延遲,若兩個信號間的skew大於我們所指定的需求,將產生violation warning。

Introduction

使用環境:NC-Verilog 5.4 + Debussy 5.4

如下圖所示,若兩個信號之間的skew大於limit時,將產生violation warning。

skew00

Testbench

skew_tb.v / Verilog

1 
/*
 
2 
(C) OOMusou 2009
http://oomusou.cnblogs.com
3 
4 
Filename    : skew_tb.v
5 
Compiler    : NC-Verilog 5.4 + debussy 5.4
6 
Description : $skew demo
7 
Release     : 07/15/2009 1.0
8 
*/
9 
`timescale 1ns
/
1ns
10 
11 
module
skew_tb;
12 
13 
reg
reg_a;
14 
reg
reg_b;
15 
16 
wire
wire_a;
17 
wire
wire_b;
18 
19 
assign
wire_a
=
reg_a;
20 
assign
wire_b
=
reg_b;
21 
22 
initial
 
begin
23 
  $fsdbDumpfile(
"
skew_tb.fsdb
"
);
24 
  $fsdbDumpvars(
0
, skew_tb);
25 
  #
50
;
26 
  $finish;
27 
end
28 
29 
initial
 
begin
30 
  reg_a
=
 
1
'
b0;
31 
  reg_b
=
 
1
'
b0;
32 
  #
10
;
33 
  reg_a
=
 
1
'
b1;
34 
  #
4
;
35 
  reg_a
=
 
1
'
b0;
36 
  #
1
;
37 
  reg_b
=
 
1
'
b1;
38 
  #
4
;
39 
  reg_b
=
 
1
'
b0;
40 
end
41 
42 
specify
43 
  $skew(
posedge
wire_a,
posedge
wire_b,
4
);
/*
6 is ok
*/
44 
endspecify
45 
46 
endmodule

NC-Verilog產生Timing violation的warning

skew01 

兩個信號間的skew為5 ns

skew02

42行

specify
  $skew(
posedge
wire_a,
posedge
wire_b,
4
);
/*
6 is ok
*/
endspecify

使用$skew檢查timing,以上表示從posedge wire_a到posedge wire_b間的skew limit為4 ns,若skew大於4 ns,將產生timing violation warning。此外,Verilog規定timing check類的system task,一定要放在specify block內。

完整程式碼下載

Reference

Cadence NC-Verilog Simulator Help

See Also

转载地址:http://aquqa.baihongyu.com/

你可能感兴趣的文章
《C语言编程魔法书:基于C11标准》——2.2 整数在计算机中的表示
查看>>
全球程序员编程水平排行榜TOP50,中国排名第一
查看>>
HDFS 进化,Hadoop 即将拥抱对象存储?
查看>>
Edge 浏览器奇葩 bug:“123456”打印成“114447”
查看>>
Sirius —— 开源版的 Siri ,由 Google 支持
查看>>
《OpenGL ES应用开发实践指南:Android卷》—— 2.7 小结
查看>>
《Windows Server 2012活动目录管理实践》——第 2 章 部署第一台域控制器2.1 案例任务...
查看>>
Java Date Time 教程-时间测量
查看>>
Selector.wakeup实现注记
查看>>
《Java EE 7精粹》—— 第1章 Java EE 1.1 简介
查看>>
《Exchange Server 2013 SP1管理实践》——导读
查看>>
syslog:类Unix系统常用的log服务
查看>>
使用Annotation设计持久层
查看>>
深入实践Spring Boot2.4.1 Neo4j依赖配置
查看>>
Zen Cart 如何添加地址栏上的小图标
查看>>
SecureCrt 连接Redhat linux
查看>>
[NHibernate]持久化类(Persistent Classes)
查看>>
如何在Hive中使用Json格式数据
查看>>
linux如何恢复被删除的热文件
查看>>
Eclipse(MyEclipse) 自动补全
查看>>