botchy hack note

TypeScript、Ruby、Golang とか Macとかの備忘録です.間違いがあるとご指摘くださると嬉しいです.

VCSのtimescaleに関するエラーを消したいとき

Synopsys社のVCSで回路の動作検証をしようとしていたときに以下のエラーがでてきて困った.

Error-[ITSFM] Illegal `timescale for module
tb_dcstped_b01.v, 2
  Module "tb_b01" has `timescale but previous module(s) do not.
  Please refer LRM 1364-2001 section 19.8.

このエラー,どうやら回路記述の読み込みの順番が問題らしい.

エラーがでているときは,テストベンチ記述(tb_dcstped_b02.v)を後ろから二番目に読み込むようにしていた.

vcs -full64  -v ~/Scripts/Libraries/nangate.v tb_dcstped_b02.v dcstped_b02.v -R

これを以下のように一番最初に読み込むようにしてあげると,上手いことシミュレーションできた.

vcs -full64 tb_dcstped_b02.v -v ~/Scripts/Libraries/nangate.v dcstped_b02.v -R

追記1

.vファイルにtimescaleの指定がない場合にも同様のエラーが出た. その時は.vファイルに`timescale 1ns/1ns などとするとエラーが回避できた.

追記2

サブモジュールをインクルードしてる場合,timescaleを先に書かなければ同様のエラーが出る. 以下が間違った例.

`include "aaa.v"
`timescale 1ns/1ns

以下のようにするとエラー回避できる.

`timescale 1ns/1ns
`include "aaa.v"