Foundation Simulation ScriptÀÇ ÀÌÇØ...

 

|====================================================================
|================== Foundation Script Template File =================
| ÀÌ°ÍÀº Xilinx Foundation Simulation ¾ð¾î¿¡ ´ëÇÑ ¿¹Á¦ ÆÄÀÏ ÀÔ´Ï´Ù.
| ÀÌ ¸í·É¾îµéÀº Viewlogic ȸ»çÀÇ Vsim command ¿Í ȣȯÀÌ µË´Ï´Ù. ±â
| Á¸¿¡ Vsim À» »ç¿ëÇϽŠ»ç¿ëÀÚ´Â ±âÁ¸ vsim command script file¸¦ ÀÌ
| ¿ëÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¿¹Á¦´Â »ç¿ëÀÚ°¡ command scripts¸¦ ¾î¶»°Ô
| ¸¸µé¾î »ç¿ëÇÒ °ÍÀΰ¡¿¡ ´ëÇÑ ±âº»ÀûÀÎ ¸í·É¾î »ç¿ë ¹æ¹ýµéÀ» Á¦°ø
| ÇÏ°í ÀÖ½À´Ï´Ù. Aldec simulator´Â GUI(graphical User Interface)·Î
| µµ »ç¿ëµÇ¸ç Scripts´ÂµðÀÚÀÎ »çÀÌÁî°¡ Å©°í º¹ÀâÇÑ °ÍÀ» simulation
| Çϴµ¥ À¯¿ëÇÕ´Ï´Ù.
|
| "|" ¹®ÀÚ´Â ÁÖ¼®¹®À» ¸¸µé¶§ »ç¿ëµÇ¸ç ¹®Àå ½ÃÀÛ ¸Ç ¾Õ¿¡ À§Ä¡ÇÕ´Ï´Ù.
|
| Written by J.W. Brooks Xilinx FAE, Nashua, NH
| Insight Korea FAE, Ha, Tae-Wook ¹ø¿ª,Ãß°¡
| email address : twha@hmelec.co.kr
|====================================================================
|================== SETUP the Stimulus environment ==================
|
|simulator window¿¡ ÀÖ´Â ¸ðµç ½ÅÈ£µé Áö¿ì±â
|
delete_signals   | ¶Ç´Â dels
|--------------------------
| print ¸í·É¿¡ ÀÇÇØ simulation result¸¦ °¡Áö°í ÀÖ´Â sim_out.out file
| ¸¦ »èÁ¦ÇÏ´Â ¸í·ÉÀÌ "cplr" ÀÌ´Ù.
|
clpr sim_out.out
|--------------------------
| ½Ã¹Ä·¹ÀÌ¼Ç ½ÃÀÛÁ¡À» 0 À¸·Î Àç½ÃÀÛÇϱâ
|
restart
|--------------------------
| simulator modeÀ» functional simulation À¸·Î ¼³Á¤Çϱâ
| ¿©·¯ºÐÀº ¾Æ¸¶µµ simulator¸¦ ½ÃÀÛ½Ãų ¶§ ¼±ÅÃµÈ mode¸¦ °¡Áö°í ÀÖ
| À» °ÍÀÌ´Ù. ÇÏÁö¸¸ ÀÌ script¸¦ »ç¿ëÇÏ¿© Àç¼³Á¤ ÇÒ ¼öµµ ÀÖ´Ù.
|
|set_mode functional   | * functional simulation *
|set_mode timing       | * timing simulation *
|--------------------------
| Vectors ¼³Á¤Çϱâ
|
| 'vector' ¶Ç´Â 'v' ¸í·ÉÀº ¹ö½º,¶Ç´Â °³º°½ÅÈ£µéÀ» ±×·ìÇüÅ·Π¸¸µé
| ¾î ÁØ´Ù. ÀԷ°ú Ãâ·Â½ÅÈ£µéÀ» ¹­¾î¼­ °°Àº vector ·Î ¸¸µé ¼ö´Â ¾ø
| ´Ù. ÀÌ ±â´ÉÀ» »ç¿ëÇÏ¿© ÀÌ¿ëÀÚ´Â °ü½É ÀÖ´Â ½ÅÈ£µé¸¸À» ¹ö½º ÇüÅÂ
| ·Î ¹­¾î¼­ ±× °á°ú¸¦ È®ÀÎÇØ º¸´Â µ¥ À¯¿ëÇÏ°Ô »ç¿ëÀÌ µÈ´Ù.
| À¯ÀÇÇØ¾ß ÇÒ Á¡Àº ½ÅÈ£ÀÚü°¡ BUS ÇüÅÂ, ¿¹¸¦ µé¸é ADD[7:0] DATA[7:0]
| µéµµ vector ½ÅÈ£·Î ¸¸µé¾î¾ß simulator window¿¡¼­ º¼ ¼ö ÀÖ´Ù.
|
| Controls:
vector CONTROL_VEC CLOCK I_CLK_EN I_LOAD I_ADDSUM
|
| À§ÀÇ ¿¹´Â CLOCK, I_CLK_EN, I_LOAD, I_ADDSUM 4°³ÀÇ ½ÅÈ£¸¦ CONTROL_VEC
| À̶ó´Â ±×·ì½ÅÈ£·Î ¸¸µé¾î ÁÖ´Â °ÍÀ» ÀǹÌÇÑ´Ù.
|
| Inputs:
vector INDAT_VEC I_DAT_IN[7:0]
|
| À§ÀÇ ¿¹´Â I_DAT_IN[7:0] ¶ó´Â 8 bit ½ÅÈ£¸¦ INDAT_VEC À̶ó´Â vector
| ½ÅÈ£·Î ¸¸µé¾î ÁÖ´Â °ÍÀ» ÀǹÌÇÑ´Ù.
|
| Outputs:
vector ACCOUT_VEC O_ACC_OUT[7:0]
|
| À§ÀÇ ¿¹´Â O_ACC_OUT[7:0] ¶ó´Â 8 bit ½ÅÈ£¸¦ ACCOUNT_VEC À̶ó´Â vector
| ½ÅÈ£·Î ¸¸µé¾î ÁÖ´Â °ÍÀ» ÀǹÌÇÑ´Ù.
|
|--------------------------
| watch ¸í·É¾î´Â waveform window ¿¡ º¸¿©Áú ½ÅÈ£µéÀ» Á¤ÀÇÇÒ ¶§ »ç¿ëµÈ´Ù.
| ºÎ°¡ÀûÀ¸·Î ¸¸ÀÏ ±× ½ÅÈ£µéÀÌ ÆÄÀÏ¿¡ Ãâ·ÂµÇ±â¸¦ ¿øÇÏ¸é ¹Ýµå½Ã watch
| ¹®Àå¿¡ ±× ½ÅÈ£µéÀ» Àû¾î ³Ö¾î¾ß ÇÑ´Ù.
| ¾Æ·¡ÀÇ ¸í·ÉÀº O_C_OUT SimGlobalReset IN OUT 4°³ÀÇ ½ÅÈ£°¡ waveform window¿¡
| º¸¿©Áö´Â °ÍÀ» ¸»ÇÏ°í ÀÖ´Ù.
|
watch O_C_OUT SimGlobalReset IN OUT
|--------------------------
| waveform window(viewer)¿¡ º¸¿©Áú vector signalÀÇ °ªÀ» 16Áø¼ö·Î Ç¥½ÃÇÏ´Â ¹æ¹ý.
|
radix hex INDAT_VEC
radix hex ACCOUT_VEC
|
|--------------------------
| clockÀÇ step Å©±â¸¦ ¼³Á¤ÇÏ´Â ¹ý
|¾Æ·¡ÀÇ ¿¹´Â clockÀÇ ÇÑ ÆÞ½ºÆøÀÌ 50ns ·Î ¼³Á¤ÇÑ´Ù.
|
stepsize 50.0ns
|
|--------------------------
| "clock" ¸í·É¾î¸¦ ÀÌ¿ëÇÏ¿© clock singalÀ» Á¤ÀÇÇÑ´Ù.
| ¾Æ·¡ÀÇ ¿¹´Â CLOCK À̶ó´Â singalÀ» ÇÑ ÁֱⰡ 100ns (50ns - LOW, 50ns-HIGH)
| ÀÎ clockÀ¸·Î ¼³Á¤ÇÑ´Ù. ¹Ýº¹ÀûÀÎ ½ÅÈ£´Â ÀÌ ¸í·É¾î¸¦ »ç¿ëÇÏ¿© ¸¸µç´Ù.
|
clock CLOCK 0 1
| clock CLK1 0 0 1 1 * LOW PULSE WIDTH°¡ 2 steps, HIGH PULSE WIDTH°¡ 2 steps
| clock CLK2 0 1 1   * LOW PULSE WIDTH°¡ 1 step, HIGH PULSE WIDTH°¡ 2 steps
|
|--------------------------
| "pattern" ¸í·É¾î¸¦ ÀÌ¿ëÇÏ¿© clock singal ¶Ç´Â ÀÏÁ¤ÇÑ patternÀ» °¡Áö´Â
| ½ÅÈ£¸¦ Á¤ÀÇÇÑ´Ù.
| ¾Æ·¡ÀÇ ¿¹´Â din[7:0] bus singalÀ» 20ns ÁÖ±â·Î °ªÀÌ '1'¾¿ Áõ°¡ÇÏ´Â ÆÐÅÏÀ»
| Á¤ÀÇÇÑ´Ù.
|
| vector in_d din[7:0]
| pattern in_d 0 1 10 11 100 101 110 111
| stepsize 20ns
| watch in_d
| run
|
|--------------------------
| 'assign' À» »ç¿ëÇÏ¿© ÃʱⰪÀ» signal¿¡ ÇÒ´çÇÑ´Ù.
| ¸¸ÀÏ »õ·Î¿î °ªÀ» ¿øÇÒ ¶§´Â assign ¸í·ÉÀ» »ç¿ëÇÏ¿© ´Ù½Ã ½ÅÈ£°ªÀ» ÁØ´Ù.
|
assign I_LOAD 0         | I_LOAD signal¿¡ 0(LOW) °ªÀ» ÇÒ´ç
assign I_ADDSUM 1       | I_ADDSUM_1 singal¿¡ 1(HIGH) °ªÀ» ÇÒ´ç
assign I_CLK_EN 0       | I_CLK_EN singal¿¡ 0(LOW) °ªÀ» ÇÒ´ç
assign GSR 0            | GSR singal¿¡ 0(LOW) °ªÀ» ÇÒ´ç
assign I_CE 0           | I_CE singal 0(LOW) °ªÀ» ÇÒ´ç
assign I_OE 1           | I_OE singal 1(HIGH) °ªÀ» ÇÒ´ç
assign B_IO 1           | B_IO singal 1(HIGH) °ªÀ» ÇÒ´ç
|
| ÀÔ·Â ¹ö½º¿¡ °ªÀ» ÁÖ´Â ¹æ¹ýÀº ¿©·¯°¡Áö°¡ ÀÖ´Ù.
|
| ¹æ¹ý 1: assign statementÀ» »ç¿ëÇÏ¿© Á÷Á¢ ½ÅÈ£°ªÀ» ÇÒ´çÇÏ°í ½ÅÈ£°ªÀÌ
|    º¯È­ÇÒ ¶§ ´Ù½Ã assign statement À» »ç¿ëÇÏ¿© ½ÅÈ£°ªÀ» ÁÖ´Â ¹æ¹ý
|
|                       assign INDAT_VEC 01\H
|
| ¹æ¹ý 2: wfm commandÀ» »ç¿ëÇÏ¿© ½Ã°£´ëº°·Î stimulus valuesÀ» ÁÖ´Â ¹æ¹ý
|    assign À¸·Î ¸¶Áö¸· ½Ã°£´ë ÀÌÈÄ¿¡ Á¤ÀÇÇÑ ½ÅÈ£°ªÀÌ ¾øÀ¸¸é simulator
|    ´Â ¸¶Áö¸· ½ÅÈ£°ªÀ» À¯ÁöÇÑ´Ù.
|
|    -- Àý´ë½Ã°£(Absolute Time)Àº "@" ¹®ÀÚ·Î ½ÃÀÛÇÑ´Ù.
|    -- "@" ¹®ÀÚ¾øÀÌ ½ÃÀ۵Ǵ ½Ã°£Àº »ó´ë½Ã°£(Relative Time)À» ÀǹÌÇÑ´Ù.
|    -- "+" ÇöÀçÀÇ LINE°ú ´ÙÀ½ÀÇ LINEÀ» ¿¬°áÇÒ ¶§ »ç¿ëÇÑ´Ù.
|
wfm INDAT_VEC @0ns=01\H +
              @300ns=02\H +
              @600ns=05\H +
              @900ns=10\H
|
| À§ÀÇ ¹®ÀåÀº INDAT_VEC vector signal¿¡ Àý´ë½Ã°£À¸·Î hexadecimal°ªÀ» ÇÒ´ç
| ÇÏ°í ÀÖ´Ù. 0ns ¿¡ 01°ªÀ» 300ns ¿¡ 02°ªÀ» 600ns ¿¡ 05°ªÀ» 900ns¿¡ 10°ªÀ»
| ÇÒ´çÇÏ°í ÀÖ´Ù.
|
| ¹æ¹ý 3: stim.dat(ÆÄÀÏÀ̸§Àº »ç¿ëÀÚ°¡ ¸¶À½´ë·Î ÇÒ´çÇÒ ¼ö ÀÖ´Ù) ÆÄÀÏ¿¡
|    ÇÒ´çµÉ ½ÅÈ£°ªÀ» ÀúÀåÇÑ ÈÄ wfm commandÀ» »ç¿ëÇÏ¿© Re direct ½ÃÅ°´Â ¹æ¹ý
|
|-------start stim.dat (not including this line)--------
| @0ns=01\H +
| @300ns=02\H +
| @600ns=05\H +
| @900ns=10\H
|-------end stim.dat (not including this line)--------
|
| wfm INDAT_VEC < stim.dat
|
|%%%%%%%%%%%%%%%%% wfmÀÇ ¿©·¯°¡Áö »ç¿ë¹ý %%%%%%%%%%%%%%%%%
|
| 1. ½ÅÈ£ÀÇ °ªÀ» ÀÏÁ¤ÇÏ°Ô °¨¼Ò
|
|   wfm ½ÅÈ£¸í ½ÃÀ۽ð£=½ÅÈ£°ª(½Ã°£ ÁÖ±â=dec by °¨¼Ò¿øÇÏ´Â °ª)*¹Ýº¹È½¼ö
|
|   ½Ã°£Áֱ⿡ ½Ã°£¿¡ ´ÜÀ§°¡ ¾øÀ¸¸é ±âº»ÀûÀ¸·Î 100 pico secondÀÌ´Ù.
|   ±×·¯¹Ç·Î 1000 ´Â 100ns °¡ µÈ´Ù.
|
|   wfm signal1 0=FF\H (1000=dec by 1)*4
|
|   ½ÅÈ£ signal1Àº 0ns À϶§ 'FF\H' ÀÌ°í 100ns¸¶´Ù '1'¾¿ °¨¼ÒÇÑ´Ù.
|   100nsµÚ¿¡´Â 'FE\H'°¡ µÇ°í 200nsµÚ¿¡´Â 'FD\H'°¡ µÈ´Ù.
|
| 2. ½ÅÈ£ÀÇ °ªÀ» ÀÏÁ¤ÇÏ°Ô Áõ°¡
|
|   wfm ½ÅÈ£¸í ½ÃÀ۽ð£=½ÅÈ£°ª(½Ã°£ ÁÖ±â=inc by Áõ°¡¿øÇÏ´Â °ª)*¹Ýº¹È½¼ö
|
|   wfm signal1 0=00\H (1000=dec by 1)*4
|
|   ½ÅÈ£ signal1Àº 0ns À϶§ '00\H' ÀÌ°í 100ns¸¶´Ù '1'¾¿ Áõ°¡ÇÑ´Ù.
|   100nsµÚ¿¡´Â '01\H'°¡ µÇ°í 200nsµÚ¿¡´Â '02\H'°¡ µÈ´Ù.
|
| 3. ÁÖ±âÀûÀÎ ½ÅÈ£¸¦ ¸¸µé ¶§
|
|   wfm ½ÅÈ£¸í ½ÃÀ۽ð£=½ÅÈ£°ª(ÁÖ±â½Ã°£=°ª ÁÖ±â½Ã°£=°ª .....)*¹Ýº¹È½¼ö
|
|   wfm signal1 @0=0 (10ns=1 10ns=0)*4
|
|   ½ÅÈ£ signal1Àº 0ns À϶§ '0' ÀÌ°í 10ns¸¶´Ù '1'°ú '0'À» ¹Ýº¹ÇÏ´Â ÆÄÇüÀ»
|   4°³ ¸¸µå´Â °ÍÀ» º¸¿©ÁØ´Ù.
|
|   wfm clk 0=0 ((1000=1 1000=0)*4 500=1 500=0)*3
|
|   ½ÅÈ£ clk´Â 0nsÀ϶§ '0'ÀÌ°í 100ns¸¶´Ù '1'°ú '0'À» ¹Ýº¹ÇÏ´Â ÆÄÇüÀ» 4°³¿Í
|   50nsÀ϶§ '1'°ú ±× ÈÄ 50ns¶§ '0'ÀÌ µÇ´Â ÆÄÇü 3°³¸¦ ¸¸µë.
|
| 4. ´Ù¾çÇÑ »ç¿ë¹æ¹ý.
|
|       wfm sig1 0=FF\H (1000=rl by 1)*10  --- rotate left
|       wfm sig1 0=FF\H (1000=rr by 1)*10  --- rotate right
|       wfm sig1 0=FF\H (1000=sl by 1)*10  --- shift left
|       wfm sig1 0=FF\H (1000=sr by 1)*10  --- shift right
|
|***** ÇÊ¿ä½Ã on-line help¸¦ ÂüÁ¶ÇÏ¿© ÀÛ¾÷ÇÒ °Í. *****
|
|------- 'break' command ---------------------------------
| Please consult users guide or on-line help.  This command is
| a powerful way to monitor you simulation and insert stimulus
| if a certain event occurs:
| Examples:
|
| break - deletes (turns off) all breakpoints
| break clock - deletes all breakpoints on clock signal
|
| break clock ?         - stops simulation after any clock transition
|
| break enable Z-X      - stops simulation when the enable signal changes
| from High_Z to Unknown_X
|
| break clock 0-1 do (assign < DATAfile.dat; print) - stops simulation
| when the clock transitions from low to High and then assigns signal
| DATA a new value from file.dat. Next, it prints the new state of all
| signals.
|
|***** ÇÊ¿ä½Ã on-line help¸¦ ÂüÁ¶ÇÏ¿© ÀÛ¾÷ÇÒ °Í. *****
|
|===================== Start of the simulation stimulus =====================
|
| ·ÎÁ÷ÀÇ »óÅ´ À̸§(HIGH, LOW µîµî)À̳ª ¼ýÀÚ(0,1)·Î¼­ Ç¥ÇöÀÌ µÈ´Ù.
| ¹ö½º·ÎÁ÷»óŵµ À̸§ ¶Ç´Â ¼ýÀÚÀÇ Çà·Ä·Î¼­ Ç¥ÇöµÈ´Ù.
| °¡Àå ¿ÞÂÊ¿¡ ÀÖ´Â À̸§À̳ª ¼ýÀÚ´Â ÃÖ»óÀÇ ¹ö½º½ÅÈ£°ªÀÌ µÈ´Ù.
| ¸¸¾à ¹ö½º½ÅÈ£ÀÇ Å©±âº¸´Ù ÀÛÀº ½ÅÈ£°ªÀ» ÁÖ¸é, ÀÚµ¿ÀûÀ¸·Î »óÀ§ºñÆ®
| °ªÀº 0 ¶Ç´Â LOW ½ÅÈ£·Î ä¿öÁø´Ù. ÇÑ°³ÀÇ ½ÅÈ£´Â ÇÑ°³ÀÇ ½ÅÈ£¼±À»
| °¡Áö´Â ¹ö½º·Î Ãë±ÞµÈ´Ù.
|
| ¹ö½º´Â Binary´Â (\B)·Î OctalÀº (\O)·Î DecimalÀº (\D)·Î HexadecimalÀº
| (\H)·Î Ç¥ÇöÀÌ µÈ´Ù. ¸¸ÀÏ ¾Æ¹«·± Ç¥ÇöÀÌ µÇÁö ¾ÊÀ¸¸é binary·Î °£ÁÖÇÑ´Ù.
| ÀÌ·¯ÇÑ formatÀº ±×µéÀÇ ¼ýÀÚ¹è¼ö¸¦ »ç¿ëÇÏ¿© Ç¥ÇöµÉ¼öµµ ÀÖ´Ù.
| e.g. \2, \8, \16, \20.
|
| Examples of bus values:
|
|  11100010101 binary bus representation        | -- ÀÌÁø ¹ö½ºÇ¥Çö
|  100010101\B binary bus representation        | -- ÀÌÁø ¹ö½ºÇ¥Çö
|  1234\8  octal bus representation             | -- ÆÈÁø ¹ö½ºÇ¥Çö
|  777\O   octal bus representation             | -- ÆÈÁø ¹ö½ºÇ¥Çö
|  eff3ab\16   hexadecimal bus representation   | -- 16Áø ¹ö½ºÇ¥Çö
|  10010101\H  hexadecimal bus representation   | -- 16Áø ¹ö½ºÇ¥Çö
|  99999\D decimal bus representation           | -- 10Áø ¹ö½ºÇ¥Çö
|  abcdefg\20  base 20 numbering system         | -- 20Áø ¹ö½ºÇ¥Çö
|------------------------------------------------------------------
| 'print' file_name.dat ´Â 'watch' ¸í·É¿¡ ÀÇÇØ ³ª¿­µÈ ½ÅÈ£µéÀÇ
| °á°ú¸¦ file_name.dat ¶ó´Â ÆÄÀÏ¿¡ Ãâ·ÂÇÑ´Ù.
| 'print' ´Â ±× ¸í·ÉÀÌ »ç¿ëµÈ ±× ½Ã°£±îÁöÀÇ ÀڷḦ ÀúÀåÇÑ´Ù.
| ¿©·¯½Ã°£ÀÇ °ªÀ» ÀúÀåÇÏ·Á¸é print commandÀ» ¿©·¯¹ø »ç¿ëÇ϶ó.
|
print sim_out.out
|------------------------------------------------------------------
|
| 'high' ¶Ç´Â 'h' ±×¸®°í 'low' ¶Ç´Â 'l' Àº °³º°ÀûÀÎ ½ÅÈ£ÀÇ high
| ¶Ç´Â lowÀ» ¼³Á¤ÇÒ ¶§ »ç¿ëÇÑ´Ù. 'x' ´Â ½ÅÈ£¿¡ unknownÀ» ¼³Á¤ÇÒ
| ¶§ »ç¿ëÇÑ´Ù.
|
| Timing Simulation½Ã ½ÇÁ¦ º¸µåÀÇ µðÀÚÀÎÀÌ Ãʱ⵿ÀÛÀ» ÇÒ¶§¿¡ ¸ðµç
| Register°¡ ResetÀÌ µÇ¾îÁö´Â È¿°ú¸¦ º¸±â À§ÇÏ¿© simulator¿¡ Àü¿ë
| reset signalÀ» »ðÀÔÇÏ¿©¾ß ÇÑ´Ù.
|
|       * SimGlobalReset -- FPGA¿ë Global Reset Signal
|       * PRLD -- CPLD (XC9500 only)¿ë Global Reset Signal
|
| À§ÀÇ µÎ ½ÅÈ£Àº high À϶§ ¸ðµç Flip-FlopÀ» ÃʱâÈ­ ½ÃŲ´Ù.
| ´Ù¸¥ ¸»·Î´Â active-high µ¿ÀÛÀ» ÇÑ´Ù.
h SimGlobalReset
h PRLD
cycle 3
print sim_out.out
l SimGlobalReset
l PRLD
cycle
print sim_out.out
|--------------------------
| 'cycle n' ¸í·ÉÀº 'n' clock cycles ¸¸Å­ simulation ÇÑ´Ù. ¿©±â¼­
| n Àº ¼ýÀÚ¸¦ Á¤ÀÇÇÑ´Ù. ¿©·¯°³ÀÇ clockÀ» ¼±¾ðÇßÀ¸¸é ±× Áß¿¡¼­
| °¡Àå ÁֱⰡ ±ä clockÀ» ÇÑ ÁÖ±â·Î °è»êÇÏ¿© 1 cycleÀ» ½ÇÇà.
|
| 'sim xx.xxns' ´Â Á¤ÀÇÇÑ ½Ã°£¸¸Å­ simulation ÇÑ´Ù.
|
| 'run n' ´Â 'n' clock cycles ¸¸Å­ simulation ÇÑ´Ù.
sim 100.0ns
| 'h' ¶Ç´Â 'high' ´Â ½ÅÈ£¿¡ logical '1' À» ÇÒ´çÇÑ´Ù.
h I_CLK_EN
print sim_out.out
sim 300.0ns
|assign INDAT_VEC 02\H
sim 100ns
h I_CE
print sim_out.out
cycle
| 'l' ¶Ç´Â 'low' ´Â ½ÅÈ£¿¡ logical '0' À» ÇÒ´çÇÑ´Ù.
l I_CE
l B_IO
cycle
print sim_out.out
l I_OE
|------------------------------------------------------------------
| ¾ç¹æÇâ I/O ¶Ç´Â busses ¸¦ simulationÇÒ ¶§ 'release' ¸í·ÉÀÌ Äè À¯¿ëÇÏ´Ù.
| 'r' or 'release'¸í·ÉÀº ½ÅÈ£¸¦ stimulator control ¿¡¼­ Ç®¾î ÁØ´Ù.
| ¾ç¹æÇâ ¹ö½º ¶Ç´Â ½ÅÈ£°¡ chip¿¡ ÀÇÇØ ±¸µ¿µÇ¾îÁú ¶§, ¾ç¹æÇâ ¹ö½º ¶Ç´Â
| ½ÅÈ£ÀÇ °ªÀ» º¼ ¶§ »ç¿ëµÇ°ï ÇÑ´Ù. ¿©·¯ºÐÀº ¹ö½º³ª ÇÉ(pin)¿¡
| 'h', 'l', ¶Ç´Â 'assign' ¸í·ÉÀ» »ç¿ëÇÏ¿© stimulator ¸¦ ´Ù½Ã ³ÖÀ» ¼ö ÀÖ´Ù.
| ¿©±â¼­ stimulator ´Â ½ÅÈ£¿¡ ¾î¶² ÆÐÅÏ ¶Ç´Â °ªÀ» ÇÒ´çÇÏ´Â °ÍÀ» ¸»ÇÑ´Ù.
|
| "B_IO" ¶ó´Â ¾ç¹æÇâ ½ÅÈ£¸¦ »ý°¢Çغ¸ÀÚ. Ãâ·Â ½ÅÈ£ÀÎ "DOUT" ÀÌ Tri-state
| bufferÀÇ ÀԷ¿¡ °É¸®°í ±× Ãâ·ÂÀÌ B_IO ½ÅÈ£¿¡ °É¸®¸ç tri-state bufferÀÇ
| enable singalÀ» t_en À̶ó ÇÏÀÚ. B_IO ½ÅÈ£°¡ input bufferÀÇ ÀԷ¿¡ °É¸®°í
| ±× input bufferÀÇ Ãâ·ÂÀ» Dual_I¶ó Çϸé ÀÌ·¸¶§ ¾î¶²½ÄÀ¸·Î command file
| À» ¸¸µé °ÍÀΰ¡. ¿©±â¼­ tri-state buffer ÀÇ enable signal´Â active-low·Î
| µ¿ÀÛÇÑ´Ù°í °¡Á¤ÇÑ´Ù.
|
| ¸ÕÀú ÀÔ·ÂÀ» »ý°¢ÇØ º¸ÀÚ
| assign B_IO 1
| assign t_en 1
| sim 100 ns
| À§ÀÇ command °¡ ¼öÇàµÇ¸é Dual_I ´Â  logical '1' ÀÌ µÉ °ÍÀÌ´Ù.
| ÀÌ »óÅ¿¡¼­ t_en ÀÌ '0' °¡ µÇ°í DOUT ½ÅÈ£°¡ '0'ÀÌ µÇ¸é ¾î¶² Çö»óÀÌ ³ªÅ¸³¯±î?
| ¾Æ¸¶µµ B_IO´Â '1'À» À¯ÁöÇÏ°í ÀÖÀ» °ÍÀÌ´Ù. À̶§ release ¸í·ÉÀ» »ç¿ëÇÑ´Ù.
| release B_IO
| assign t_en 0
| assign DOUT 0
| sim 100 ns
|
| * Á» ´õ ÀÚ¼¼ÇÑ ³»¿ëÀÌ ÇÊ¿äÇÏ¸é ¾Æ·¡ ȨÆäÀÌÁö ÁÖ¼Ò·Î ¿À¼¼¿ä. *
| * http://www.PLDWorld.com *
| * À§ÀÇ ÁÖ¼Ò¿¡ Á¢¼ÓÇÏ¿© ±â¼úÀÚ·á¶õ¿¡¼­ ÇÊ¿äÇÑ ÀڷḦ ¹Þ¾Æ°¡¼¼¿ä. *
|
r B_IO
cycle
h I_OE
cycle 2
print sim_out.out
h B_IO
cycle 2
print sim_out.out
|==================================================================
| Other commands to know of....
|------------------------------------------------------------------
| 'chk_design' ¸í·ÉÀº ±âÁ¸¿¡ ÀúÀåÇÑ simulation °á°ú¿Í ÇöÀç simulation
| °á°ú°¡ °°ÀºÁö¸¦ ¾Ë±âÀ§ÇØ ºñ±³ÇÒ ¶§ »ç¿ëÇÑ´Ù.
| Please see the online help of further details on this command.
|                  chk_design design_name
|                  chk_design c:\Perv_design\design_name
|                  chkds design_name
| Along the same lines is the 'chk_results' command.  This command
| compaires the results of the output files form the simulator for
| two designs.  Please see the on-line help for more details.
|        chk_results reference_file1 reference_file2 compsn_results_file
|          chk_results reference_file1 reference_file2
|
|------------------------------------------------------------------
| 'delete_signals' ¶Ç´Â 'dels' ¸í·ÉÀº waveform viewer ¿¡¼­ ½ÅÈ£¸¦ Áö¿î´Ù.
|
|------------------------------------------------------------------
| 'execute' ¶Ç´Â 'ex' ¸í·ÉÀº ´Ù¸¥ command file À» ¼öÇàÇÑ´Ù.
| ÀÌ°ÍÀº »ç¿ëÀÚ°¡ ÁßøµÈ command fileÀ» ½±°Ô »ç¿ëÇÏ°Ô ÇÑ´Ù.
| The syntax is:
|                  ex file_name.cmd
|
|------------------------------------------------------------------
| 'network' ¶Ç´Â 'net' ¸í·ÉÀº simulator ·Î ´Ù¸¥ netlist À» ºÒ·¯ ¿Â´Ù.
|                  net fifo_des
|------------------------------------------------------------------
| ¿©·¯ºÐÀº simulation functionÀ» ¹Ýº¹Çϱâ À§ÇÏ¿© MacroÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
|
| Example:
|(assign A <a.dat; assign B <b.dat; sim; print results.dat) * 12
|
| ÀÌ macro´Â ´ÙÀ½ µ¿ÀÛÀ» 12¹ø ¹Ýº¹ÇÒ °ÍÀÌ´Ù.
|
|  assign to the signal (bus) A the next value listed in the a.dat |   file
|  assign to the signal (bus) B the next value listed in the b.dat |   file
|  simulate one simulation step
|  watch ¸í·É¾î·Î ³ª¿­µÈ ½ÅÈ£µéÀ» results.dat file¿¡ ½á¶ó.
|  Ã³À½ µ¿ÀÛÀ» ¹Ýº¹Ç϶ó.
|
|==================================================================
| end simulation
|

µÚ·Î...


ÆÄÀϸí: EXAMPLE.CMD (14,485 bytes)

  Send to a colleague | Print this document