Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 12549|回復: 1
打印 上一主題 下一主題

[問題求助] 2-4解碼器測試驗証程式編譯錯誤

[複製鏈接]
1#
發表於 2013-2-5 22:51:28 | 顯示全部樓層
本帖最後由 card_4_girt 於 2013-2-5 10:54 PM 編輯
: x$ I0 i9 \: g' z3 a
, E, N% w, {% e: s你的錯誤有以下幾點: (關於指令解釋以及程式檔請見此帖最底下); Z1 d3 V7 i$ s1 T3 {& s
1. `timescale 1ns/1ns (請把第一行改成跟這裡一樣的"標點符號")7 a4 ^' d3 e" q7 G9 S8 l
2. module the_2-4_decoder_testing_and_certification_program;
1 R# @/ A9 L( H( x2 o    必須改成# v' t; J: E9 Z
    module the_2_4_decoder_testing_and_certification_program;
) H2 p/ u$ _( y' \8 l) O
" ~( \% G8 Q# _! e# @7 r% Z' p編譯雖過但必須注意的地方:
$ Y+ X+ F8 I: Y% x- q) S) U1. fopen可以適時在後面加入要寫入或讀出,會比較知道動作,比如說
' H; Y% |% s1 D) Y    $fopen("result.txt","w");  l$ \# `7 Q7 S! K+ N1 H% Z
    模式有w(寫入至未存在或已存在的檔案)、r(讀出)、a(寫入至已存在的檔案)等: f! @6 g0 n2 a7 V
    w的寫入方式是尚未存在的檔案會自動創造且寫入程式訊息,或是對存在的檔案進行覆蓋性寫入,因此每次執行完的結果會把上次結果全部蓋掉
/ G; n8 v/ ^& I    a的寫入方式是尚未存在的檔案會自動創造且寫入程式訊息,或是對存在的檔案進行非覆蓋性寫入,因此每次執行完的結果會顯示在上次結果之後* X, N  e4 z$ ]0 _& ?
    你也可以參考下面的頁面:
' Q/ L1 X8 m7 p1 D' s1 _5 A( [    http://www.asic-world.com/verilog/verilog2k3.html
3 }4 V/ v/ X5 b2 `
3 E" e5 `( x8 v! b2. 因為你的程式含有$stop任務,對testbench會使模擬暫停,因此對後面才定義的task宣告來說並沒有作用到,最好是能在initial begin...end區塊之前就定義好task
6 x% a# v) g* t! J1 y3. 你沒有呼叫你的"CHECK_y" task,所以就算把測試的pattern寫出來也沒有作用,應該要想辦法代個值給CHECK_y,才有機會知道TX_ERROR是否為0,並輸出對應的訊息以利debug3 M  u# U( C  ]1 p9 C' S
4. 不清楚哪一個是你的第一個輸入,不過我是把它當成{b,a}={00,01,10,11}來看,那麼你應該將刪除線部分改成紅色部分,不然會少一種輸入的可能性
9 V1 `7 |/ I9 C& z1 A" E, M. M       //{b,a}=2'b00;  V" r. L8 F9 V% j  ]
       a=1'b0;
. c4 C, L, X  l1 b- }        b=1'b0;/ ^5 _: b+ K# T6 ?( f" ?  @' e
        //{b,a}=2'b01;      
8 G" Q3 c& N/ c. j! _, ?        #100
$ p3 z  _) ^+ b% r1 K/ Q        CHECK_y(4'bxxxx);" I! O1 l. h, z
        a=1'b1;2 _% d6 E  |9 n- s& i$ ]& j# H
       //{b,a}=2'b10;& ^- o: O( H7 [4 j) S- T
        #100:
5 A3 v, e& \; ~2 t5 i/ }! O        CHECK_y(4'bxxxx);$ P2 f4 P! k, E# c8 `
        a=1'b0;                 * x5 y6 N: _# b$ |9 T2 C6 M
        b=1'b1;
# Z0 r1 p7 l- W9 r/ x6 q        //{b,a}=2'b11;      
- x( S$ j  \2 ]! C0 X( P3 V. A        #100* Z4 G2 G- L9 f) @
        CHECK_y(4'bxxxx);
& y7 \# l* l. S/ [4 E        b=1'b1;  //{b,a}=2'b10;
- Q: O2 c1 J  N# V- `        a=1'b1;  //{b,a}=2'b11;( T- L9 x- x+ j
        #150
! C/ t! w; R, T        CHECK_y(4'bxxxx);
- v& I+ O' l; j" {. Y, q5 A/ E$ j+ A( F9 s. _* G, ]5 ~/ B
5. 關於詳細的解釋,以及可用ModelSim 6.2版模擬的do file(.do)、改過的testbench以及2 to 4 decoder的設計檔,都在下面這個附件中,可參考看看
4 l1 ]6 w0 e  C2 F7 B4 X7 F2 ~$ M# D1 G. Q, U, O0 L6 _# r' c
: G( A+ E( P2 ?. p
希望對你有幫助!!

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?申請會員

x
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-6-3 03:13 AM , Processed in 0.130016 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表