现在的位置: 首页 > 综合 > 正文

(筆記 ) 如何連結NC-Verilog與Debussy? (SOC) (NC-Verilog) (Debussy)

2013年07月15日 ⁄ 综合 ⁄ 共 1563字 ⁄ 字号 评论关闭

Abstract
Debussy是超強的debug工具,本文簡單介紹NC-Verilog如何與Debussy連結。

Introduction
一個簡單的D-FF,示範如何使用NC-Verilog與Debussy做連結。

d_ff.v / Verilog

1 /* 
2 (C) OOMusou 2008 http://oomusou.cnblogs.com
3 
4 Filename    : d_ff.v
5 Compiler    : NC-Verilog 5.4
6 Description : NC-Verilog with Debussy
7 Release     : 03/19/2009 1.0
8 */
9 
10 module d_ff (
11   input iCLK,
12   input iD,
13   output reg oQ,
14   output reg oQ_BAR
15 );
16 
17 always@(posedge iCLK) begin
18   if (iD == 1) begin
19     oQ     <= 1'b1;
20     oQ_BAR <= 1'b0;
21   end
22   else begin
23     oQ     <= 1'b0;
24     oQ_BAR <= 1'b1;
25   end
26 end
27 
28 endmodule
29 

d_ff_tb.v / Verilog
測試d_ff.v的testbench

1 /* 
2 (C) OOMusou 2008 http://oomusou.cnblogs.com
3 
4 Filename    : d_ff_tb.v
5 Compiler    : NC-Verilog 5.4
6 Description : NC-Verilog with Debussy
7 Release     : 03/19/2009 1.0
8 */
9 
10 module d_ff_tb;
11 
12 reg clk, d;
13 wire q, q_bar;
14 
15 initial begin
16 $fsdbDumpfile("d_ff.fsdb");
17 $fsdbDumpvars(0, d_ff_tb);
18 
19     clk = 0;
20 #5  d = 0;
21 #5  d = 1;
22 
23 #10 $finish;
24 end
25 
26 // clk
27 always #5 clk = !clk;
28 
29 d_ff u0 (
30   .iCLK(clk),
31   .iD(d),
32   .oQ(q),
33   .oQ_BAR(q_bar)
34 );
35 
36 endmodule

Debussy本身並沒有simulation的功能,必須依靠NC-Verilog或者ModelSim產生的*.fsdb使用。

16行

$fsdbDumpfile("d_ff.fsdb");

由testbench產生Debussy所需要的*.fsdb。

17行

$fsdbDumpvars(0, d_ff_tb);

指定dump哪個module的信號,0表示全部信號,1代表這一層信號,2代表這一層及下一層信號,d_ff_tb表示top module。

使用NC-Verilog模擬

ncverilog +access+r d_ff.v d_ff_tb.v 

使用Debussy看波形圖
將所有會用到的檔案寫在run.f檔中

fun.f

d_ff.v
d_ff_tb
.v

執行Debussy

debussy -f run.f -ssf d_ff.fsdb -2001

-f表載入run.f,-ssf載入由NC-Verilog所dump的fsdb檔,-2001表示支援Verilog 2001規格

若已經將在Debussy將要觀察的signal存成*.rc檔,可由-sswr參數一次載入。

debussy -f run.f -ssf d_ff.fsdb -sswr d_ff.rc -2001

抱歉!评论已关闭.