Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
1#
發表於 2013-2-5 22:51:28 | 顯示全部樓層
本帖最後由 card_4_girt 於 2013-2-5 10:54 PM 編輯 6 x) o% R( b! R* B2 F9 ]" v% e

+ t5 @- T- L( x8 i* E* I) v7 D2 E你的錯誤有以下幾點: (關於指令解釋以及程式檔請見此帖最底下)
7 ]7 B, i; X0 p) T* t1. `timescale 1ns/1ns (請把第一行改成跟這裡一樣的"標點符號")
- Q1 L+ J4 K4 u- }) S  o$ P2. module the_2-4_decoder_testing_and_certification_program;$ ]9 v& x! L$ x0 B" b+ ]$ D
    必須改成/ L1 u$ s( N8 v5 S: s
    module the_2_4_decoder_testing_and_certification_program;
  H6 t/ X# ]& z9 K( V3 f% Y& P4 M; w, ]; g4 G; J
編譯雖過但必須注意的地方:
% \1 U. p4 r( @6 R3 t1. fopen可以適時在後面加入要寫入或讀出,會比較知道動作,比如說( N- p& f6 U9 V7 y
    $fopen("result.txt","w");! G! M- m5 L. T1 r: x' `6 a% \
    模式有w(寫入至未存在或已存在的檔案)、r(讀出)、a(寫入至已存在的檔案)等: e% \( Y& \/ O- G6 Z
    w的寫入方式是尚未存在的檔案會自動創造且寫入程式訊息,或是對存在的檔案進行覆蓋性寫入,因此每次執行完的結果會把上次結果全部蓋掉
( o  y8 c" y: T: \4 |/ n    a的寫入方式是尚未存在的檔案會自動創造且寫入程式訊息,或是對存在的檔案進行非覆蓋性寫入,因此每次執行完的結果會顯示在上次結果之後
% ]& p9 p/ q( i% `) h& w6 t    你也可以參考下面的頁面:
8 }) n: ]- Q* {& i' O4 K    http://www.asic-world.com/verilog/verilog2k3.html% u; {! Z2 [% ]
8 v3 X2 E; M: q6 [# s% r4 Q
2. 因為你的程式含有$stop任務,對testbench會使模擬暫停,因此對後面才定義的task宣告來說並沒有作用到,最好是能在initial begin...end區塊之前就定義好task
, X+ K# S7 l  ~6 _3. 你沒有呼叫你的"CHECK_y" task,所以就算把測試的pattern寫出來也沒有作用,應該要想辦法代個值給CHECK_y,才有機會知道TX_ERROR是否為0,並輸出對應的訊息以利debug) W  X  e! u: g& t' E! P5 Z
4. 不清楚哪一個是你的第一個輸入,不過我是把它當成{b,a}={00,01,10,11}來看,那麼你應該將刪除線部分改成紅色部分,不然會少一種輸入的可能性
- W. f$ @( O7 B: A2 U0 T$ Y       //{b,a}=2'b00;
* @" `; }+ H9 C8 n) S       a=1'b0;  @$ o/ }0 s* k
        b=1'b0;% N7 \! F, `" ?
        //{b,a}=2'b01;       # V8 {2 |: h7 T, C2 _
        #100
9 U( v4 D) M  V: N        CHECK_y(4'bxxxx);  Z8 t) L' B: B/ |: {: m
        a=1'b1;
# \  ?* K7 u% D' X# x! R0 P       //{b,a}=2'b10;
) l4 }6 H! g; w7 ~8 ?4 f0 |        #100:
) Z% P0 |2 Y' N+ Z' S, e+ |        CHECK_y(4'bxxxx);
5 t% _+ E$ l4 Q) J        a=1'b0;                 
+ j4 O# Z1 B4 U6 m; a. c        b=1'b1;$ M; F; {( y$ m
        //{b,a}=2'b11;       % G' z- B' k' }
        #100% ^( X% k, Z- P& f8 M
        CHECK_y(4'bxxxx);
2 F0 K" G* C2 \        b=1'b1;  //{b,a}=2'b10;2 m* Q( z/ L2 n" b
        a=1'b1;  //{b,a}=2'b11;6 s9 m/ t8 K/ c) t! q, K7 g
        #150
5 u0 Y6 v/ `- }        CHECK_y(4'bxxxx);6 o. @6 X7 v+ U/ B6 V( x

. s; `( Y* P, |+ D5. 關於詳細的解釋,以及可用ModelSim 6.2版模擬的do file(.do)、改過的testbench以及2 to 4 decoder的設計檔,都在下面這個附件中,可參考看看4 i5 _, M2 W5 I$ p2 I& M

, |( f' H3 s! ~: x" R
" j: `+ M6 g. T* a5 ]( ]9 x+ W希望對你有幫助!!

本帖子中包含更多資源

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

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

本版積分規則

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

GMT+8, 2024-5-19 12:27 PM , Processed in 0.107513 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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