ã·ãªãŒãºã®ä»¥åã®èšäº
- Reddã«ã€ã³ã¹ããŒã«ãããFPGAçšã®æãåçŽãªããã¡ãŒã ãŠã§ã¢ãã®éçºãããã³ã¡ã¢ãªãã¹ãã®äŸã䜿çšãããããã°
- Reddã«ã€ã³ã¹ããŒã«ãããFPGAçšã®æãåçŽãªããã¡ãŒã ãŠã§ã¢ãã®éçºãããŒã2ãããã°ã©ã ã³ãŒã
- Redd
- Redd
- ,
- Redd. 1:
- Redd. 2:
- :
- Redd, FTDI
- Redd
- Redd
- USB- Windows 10
- Nios II Nios II
- Redd. DMA Avalon-ST Avalon-MM
- Redd
- Redd â
- USB- Redd
éåžžã®ã³ã³ãã¥ãŒã¿ããã°ã©ã ã¯ã©ã®ããã«æ©èœããŸããïŒç¹å®ã®å€éšç°å¢ããããŸãïŒãããŠã¹ããåããã¢ãã¿ãŒãšããŒããŒãã¯ããŸãã«ãã®ç°å¢ã®æãå žåçãªä»£è¡šã§ãïŒãããã°ã©ã ã¯ããããšçžäºäœçšããŸãããããã°ãããšãã¯ãå€éšç°å¢ããå®éã®åœ±é¿ãäžããããšãããããããšãã¥ã¬ãŒãããããšãã§ããŸããç§ãã¡ã®ãã¹ã¿ãŒã¯ãå€éšã®åœ±é¿ããšãã¥ã¬ãŒãããã ãã®ããããçš®é¡ã®ã¹ã¯ãªãããäœæããããšããããããŸãããã®åŸããã°ã¢ãã©ã€ã¶ãŒãèµ·åããæ°Žææ¥ã«åçãæ£ããããšã確èªããŸãã
ãã®ã³ã³ãã¥ãŒã¿ããã°ã©ã ã§ãã¹ãŠã«ãã°ãããå Žåã¯ã©ããªããŸããïŒãã¬ãŒã¯ãã€ã³ããèšå®ãããã¬ãŒã¯ãã€ã³ãããããããç¬éã®ã·ã¹ãã ã®ã¹ãããã·ã§ããã調ã¹ãããšãã§ããŸããã·ã¹ãã ã¹ã©ã€ã¹ã¯å€æ°ã®å€ã§ãããã¶ããããŸããŸãªãã¥ãŒããã¯ã¹ãä»ã®åæãªããžã§ã¯ãã®ç¶æ ãäžè¬ã«ããããã°ãããã·ã¹ãã ã®å éšãã©ã¡ãŒã¿ãŒã®ã¹ãããã·ã§ããã
FPGAã®ãããã°æã«ã¯ãåãããšãã§ããŸãã確ãã«ãç°å¢ãçŸå®ã®ãã®ã§ããå Žåãã·ã¹ãã ã®ã»ã¯ã·ã§ã³ã忢ããŠèª¿æ»ããããšã¯ãå¯èœã§ã¯ãããŸãããåé¡ããããŸãã Reddã®è©±ã®äžéšãšããŠãç§ã¯ãã¹ãŠãã·ã³ãã«ã§é«éã§ããã¹ãã ãšããèããæšé²ãç¶ããŠããŸããè€éãªã·ã¹ãã ã¯èšèšããŠããŸãããååã®èšäºã§è¡ã£ãããã«ãããçš®ã®ã¢ãžã¥ãŒã«ãå®è¡ããŠããŸããæŽç·ŽãããŠããŸãããéåžžã«åçŽã§ããäžè¬çã«ãç§ãã¡ã¯ãã®è¡åã¢ããªã³ã°ãè¡ããŸãã
ãããŠããã§ãå€éšç°å¢ã«ã€ããŠçåãçããŸãããããã·ãã¥ã¬ãŒãããæ¹æ³ã¯ïŒã¢ãã«ãç§ãã¡ã®å©ãã«ãªããŸãã VerilogïŒããã³VHDLãä»ã®åæ§ã®ãã®ïŒã¯ããããããã®ã®åäœãèšè¿°ããããšãã§ããŸãã ULPIãã€ã¯ããµãŒãããã§åäœããã·ã¹ãã ãäœæããŠããŸã...ãããã£ãŠããã®åäœããã¹ãããã«ã¯ãULPIãšãŸã£ããåãããã«åäœããäœããããäžæ¹ã®ç«¯ã«ããå¿ èŠããããŸããã€ãŸããULPIã¢ãã«ã§ããããããããã ãã§ã¯ååã§ã¯ãããŸãããç§ãã¡ã®ãããã¯ã¯ãALAVON_MMãã¹ããã®ã³ãã³ãã«åå¿ããŸãããããã¯ãã©ã€ãã«ããã®ã¯ãã®ãã¹ã§ãããããã£ãŠããã¹ã¢ãã«AVALON_MMã远å ããå¿ èŠãããããã®ã¢ãã«ã¯ã¢ã¯ãã£ãã§ããå¿ èŠããããŸãããã¹ãã®åœ±é¿ãæåºããã®ã¯åœŒå¥³ã§ãã
æçµçã«ã¯ããŸãã«ãã®ãããªã·ã¹ãã ãäœããªããã°ãªããŸããããããŠããã¹ãŠã®ãã¹ãããã«ã¯ã¢ãžã¥ãŒã«å ã®ä¿¡å·ã®ã¿ã€ãã³ã°å³ãèšé²ã§ããããã«ãªããŸãããšã©ãŒãçºçããå Žåããã¬ãŒã¯ãã€ã³ããèšå®ããã·ã¹ãã ã®ã¹ãããã·ã§ããã調ã¹ãŠæµãèŠã€ããããšãã§ããŸããå人çã«ã¯ãéåžžãããã®ãã¬ãŒã¯ãã€ã³ããèšå®ããŸããããã»ãšãã©ã®å Žåãã¿ã€ãã³ã°å³ã®åæã§ååã§ããå®éã®ãšãããä¿¡å·ã¯ã€ã³ã¿ãŒãã§ã€ã¹ä¿¡å·ã ãã§ãªããå éšã®ä¿¡å·ã衚瀺ã§ããŸãããã£ãŒãäžã®12åãŸãã¯2åã®å éšä¿¡å·ãåŒãåºããšãéåžžãããžãã¯ã§äœãééã£ãŠå®è£ ãããŠããããæšæž¬ã§ããŸãã
仿¥ã®èšäºã®ç®çã¯ãã¢ããªã³ã°ãäžè¬çã«äœã§ãããã«ã€ããŠè©±ãããšã§ã¯ãªãïŒããã¯é·ã話ã§ãïŒããã®ã¢ããªã³ã°ãæãè¿ éã«è¡ãæ¹æ³ã瀺ãããšã§ãããããŠããããæŠéä»»åã§ã¯ãªããç°¡åãªäŸã§æ€èšããŸããéåžžã«åçŽãªãã¹ãã·ã¹ãã ãäœæããŠã次ã®èšäºã§ãããè€éãªããŒãžã§ã³ã®èãã©ãããæé·ãããããã§ã«çè§£ã§ããããã«ããŸããããã¯ãèªãã§ãããšãã«åº§ã£ãŠäžæè°ã«æããªãæ¹ã䟿å©ã ããã§ããããªã圌ã¯ãããè¡ãã®ã§ããïŒã ..ãã¡ãªã¿ã«ãæè¿ãç§ã®ç¥äººã®äžäººã¯ãã¢ããªã³ã°ã®ã¹ãã«ã¯æã£ãŠããŸãããQuartusç°å¢ã«ãããç°¡åãã€èªç¶ã«å®è¡ã§ããã¡ã«ããºã ãçµã¿èŸŒãŸããŠããããšãç¥ããŸããã§ããã圌ã¯ããã«å¿ èŠä»¥äžã®åªåãè²»ãããããããã£ãŠããããã誰ãããQuartusã«åºæã®å¯èœæ§ã«ã€ããŠèªåèªèº«ã®ããã«äœãæ°ããããšãåŠã¶ã§ãããããããå§ããŸãããã
Verilog
人ã ã¯2ã€ã®ã«ããŽãªãŒã«åé¡ãããŸããæã§äžããäœãã®ã奜ããªäººãããŠã¹ã§äœãã®ã奜ããªäººãæã§ãã¹ãŠãäœæããæ¹ãæ£ããã§ããããªãã¯ãã¹ãŠã®è¡åãå¶åŸ¡ããããªããç¥ã£ãŠãããã¹ãŠãå®å šã«è¡ãããšãã§ããŸããããããã¡ã¢ãªã¯ä¿¡é Œã§ããŸããã圌女ããã€ãåãããšãããŠããå Žåã圌女ã¯è©³çްã念é ã«çœ®ããŠãããåžžã«èšèªãåãæ¿ããå¿ èŠãããå Žåã¯ã1ã2ãæåŸã«ããã§äœãããå¿ èŠãããããèŠããŠããå¿ èŠããããŸãããããã£ãŠããããŠã¹ãããããåãããªãã·ã§ã³ã䜿çšããäœæ¥ã¯ããããçç±ã§ããå Žåã«éããååšããæš©å©ããããŸããç¹°ãè¿ãã«ãªããŸããããããã°äžã®ã¢ãžã¥ãŒã«ã«12åã»ã©ã®ã€ã³ã¿ãŒãã§ã€ã¹ä¿¡å·ãããå Žåãããããå宣èšããŠè»¢éãããšããæ¥åžžçãªäœæ¥ãè¡ãã®ã¯ãã€ãéå±ã§ãããããã£ãŠãããã§ã¯ãããŠã¹ã䜿çšããŠã¢ãã«ãäœæããæ¹æ³ãèŠãŠãããŸãããããŠãããã§ååãã©ããããŸãã¯æåäœæ¥ã«åãæ¿ããå¿ èŠããããã©ããã¯ã誰ããèªåã§å€æããŸãã
ããã§ãã¢ãžã¥ãŒã«ãã·ãã¥ã¬ãŒãããããšæããŸãã ãã·ãã¥ã¬ãŒãããšã¯ãç§ãã¡ã®ãµã€ã¯ã«ã®ç¯å²ãè¶ ããŠããŸãããã®ãããã¯ã«ã€ããŠãå¥ã®å€§ããªãµã€ã¯ã«ãæžãããšãã§ããŸããã€ãŸãããã®ã»ã¯ã·ã§ã³ã®ãã¬ãŒã ã¯ãŒã¯å ã§ã¯ãã¢ãã«ãéçºããããã®æ¹æ³ã«ç²ŸéããŠããããšãåæãšããŠããŸãããããããã¹ãŠããããžã§ã¯ãã«å«ããå¿ èŠããããŸã...ãŸãã¯ããã§ã¯ãããŸãããïŒå¥åŠãªããšã«ãã¢ãžã¥ãŒã«ãã¢ãã«åããããã«ç¬èªã®ãããžã§ã¯ããäœæããå¿ èŠã¯ãããŸãããæ°ãããã®ãå«ããããšãªããä»»æã®ãããžã§ã¯ãã«å¯çè«ãšããŠèªåèªèº«ãã¢ã¿ããã§ããŸãããã¡ã€ã³ã¢ã»ã³ããªã«ãŸã£ããåå ããªããã¹ãã¹ã€ãŒããäœæããããšã«ãã£ãŠã®ã¿å¯èœã§ãã
èå³ãåŒãããã«ãSystemVerilogã®ãã®ãããªé¢çœãã¢ãžã¥ãŒã«ãULPIãããžã§ã¯ãã«æ·»ä»ããŸããããããã¯ãç¹ã«èª¬æã®ããã«ç§ãäœæãããã®ã§ãéçºãããã¢ãã©ã€ã¶ãŒãšã¯é¢ä¿ãããŸãããå°ãåã«ããã§ãã¯ãµã ã®èšç®ãããããåããŠããã®ã§ãé ã«æµ®ãã³ãŸããã
module sum(
input clk,
input [7:0] data,
input we,
input sof,
output [15:0] sum
);
logic [15:0] temp;
always @ (posedge clk)
begin
if (we)
begin
if (sof)
temp <= data;
else
temp <= temp + data;
end
end
// -
//assign sum = (~temp)+1;
// :
assign sum = temp;
endmodule
ããŒã¿ã¯ãã¹ãä»ããŠéãããŠããããšãããããŸãããã¹ã¯AVALON_MMãéåžžã«ãªã¢ãŒãã§é£æ³ãããåçŽã«äžŠåã³ãŒãã§åºåãããŸãã
çµæã®ãã¡ã€ã«ããããžã§ã¯ãã®ãã£ã¬ã¯ããªã«é 眮ããŸãããããã ããQuartusã®ãããžã§ã¯ãã«ã¯å«ããŸããã代ããã«ããã®ããã«ç¹å¥ã«ãã¹ãã¹ã€ãŒããäœæããŸãããããè¡ãã«ã¯ãã¡ãã¥ãŒé ç®[å²ãåœãŠ]-> [èšå®]ãéžæãã衚瀺
ãããããªãŒã§ã[EDAããŒã«èšå®]-> [ã·ãã¥ã¬ãŒã·ã§ã³]ã®é ç®ãæ¢ããŸãã
ã¡ãªã¿ã«ãç·è²ã®æ ã§åŒ·èª¿è¡šç€ºãããŠããã·ãã¥ã¬ãŒã·ã§ã³ã®çš®é¡ã«ã€ããŠããããã誰ããæåã®èšäºã§ãçŽç²ã«ç¿æ £ãããããžã§ã¯ããäœæãããšãã«ModelSim Alteraãéžæãããšèšã£ãããšãèŠããŠããŸããïŒé ããæ©ããçºç ²ããªããã°ãªããªãã£ãã®ã¯ããŸãã«ã¹ããŒãžäžã®éã§ããããã ãããããžã§ã¯ãã®äœææã«ã¢ããªã³ã°ã¿ã€ããéžæãããŠããªãã£ãå Žåã¯ãããã§éžæãŸãã¯å€æŽã§ããŸãã
ãã¹ãã¹ã€ãŒãã®äœæãç¶ããŸããã©ãžãªãã¿ã³ã[ãã¹ããã³ãã®ã³ã³ãã€ã«]ã«åãæ¿ãïŒã¡ãªã¿ã«ããã®çšèªã¯ã©ã®ããã«ãã·ã¢èªã«çŸãã翻蚳ãããŸããïŒãã³ãã衚瀺ãããªããããããã¹ããã³ãããæžãããšã¯ã§ããŸããïŒ ã[ãã¹ããã³ã]ãã¿ã³ãæŒããŸãïŒ
éãããã€ã¢ãã°ã§ã[æ°èŠ]ãæŒããŸãïŒ
å®è¡ããå Žåãã¹ãã±ãŒã¹ãæåã§ã1åã®ãã¹ã§ãã£ãŒã«ãã«å ¥åã§ããŸãããã ãããã¹ãŠãããŠã¹ã§è¡ãããããã£ãŒã«ãã®äžéšã®ã¿ãå ¥åããæ®ãã¯åŸã§å ¥åããŸãããã¹ããã³ãåãã£ãŒã«ãParazitãšããåèªãå ¥åããŸããïŒãããžã§ã¯ãã«å¯çããã ãã®ãã¹ããä»ã«äœãšåŒã¶ããšãã§ããŸããïŒïŒããã®äžã«ããParazitãšããåèªãèªåçã«å ¥åãããŸãããä»ã¯å€æŽããŸããããå°æ¥çã«ã¯å€æŽããå¿ èŠããããŸãããŸããã...ããã¿ã³ã䜿çšããŠããããã°ããå ç®åšã®ã³ãŒããå«ãsum.svãã¡ã€ã«ãéžæããã远å ããã¿ã³ã䜿çšããŠãããããã¹ããã¡ã€ã«ã®ãªã¹ãã«ããã·ã¥ããŸãããä»ã®ãšãããããã ãã§ãããã€ã¢ãã°ãéãã...
次ã«ãModelSimç°å¢ã§ãã¹ããäœæãç¶ããŸãããããè¡ãã«ã¯ã[ããŒã«]-> [ã·ãã¥ã¬ãŒã·ã§ã³ããŒã«ã®å®è¡]-> [RTLã·ãã¥ã¬ãŒã·ã§ã³]ã¡ãã¥ãŒé ç®ãéžæããŸã
ãModelSimãŠã£ã³ããŠãéããŸããããããVerilogã³ãŒãã§ãšã©ãŒãèŠã€ããã®ã§ãModelSimãéããŠãšã©ãŒãä¿®æ£ããå床éãå¿ èŠããããŸãããããé ããæ©ãããééãã®ãªã¹ãã¯çŽç²ã«çµç¹çãªãã®ã«ãªãã§ããããç§ã«ã¯æ¬¡ã®ããã«èŠããŸãã
ãããã¬ãã«ã®ã¢ãžã¥ãŒã«ãèŠã€ãããŸãããããã¯æ£åžžã§ãããŸã åçŽã«äœæããŠããŸããããããã£ãŠãã©ã€ãã©ãªã®ãªã¹ãã§äœæ¥ããŠéããŸãããããç§ãã¡ã®å ç®åšã§ãã
ãã®äžã«ã«ãŒãœã«ã眮ããããŠã¹ã®å³ãã¿ã³ãæŒããŠã[ãŠã§ãŒãã®äœæ]ã¡ãã¥ãŒé ç®ãéžæããŸããããã¯ãã¹ãŠããã¹ãã§éåžžã«éå±ã§ããç§ããããªãæ®åœ±ããŠããå Žåãããã»ã¹å šäœã«æ°åç§ãããã®ã§ãå¿é ããªãã§ãã ãããããããããã«æãèŠãŠãã ããããããã£ãŠãCreate Wave ...
ã¢ãžã¥ãŒã«ã€ã³ã¿ãŒãã§ã€ã¹ä¿¡å·ã¯èªåçã«ãã£ãŒãã«ç§»åããŸããã
ãããã®1ã€ã«å€ãå²ãåœãŠãå¿ èŠããããŸããã©ã¡ãã§ãæ§ããŸãããä»»åœããããšãéèŠã§ãã Quartusã®éåžžã«å€ãã¢ããªã³ã°ç°å¢ã¯ãã¯ããã¯ä¿¡å·ã®çæã«åªããŠããŸãããæ®å¿µãªãããModelSimãåãä»ãå§ãããããããªãåã«é ä¿¡ããæ€åãããŸãããããã§ã¯ããã®ãããªãã®ã§ãã¹ãŠãããã»ã©çŸããã¯ãããŸãããããã§ã¯ãžã§ãã¬ãŒã¿ãŒãçæããæå³ãããããªãã£ãã®ã§ã衚瀺ããããŸãããã ãã...ãŸããç§ãã¡ã®ç·ããŒãã«èšå®ããŸããããä¿¡å·ãçããå³ãã¿ã³ãæŒããŠãã¡ãã¥ãŒé ç®[ç·šé]-> [ãŠã§ãŒããšãã£ã¿ãŒ]-> [ãŠã§ãŒããã©ãŒã ã®äœæ/倿Ž]ãéžæããŸãã
衚瀺ããããã€ã¢ãã°ã§ã[宿°]ãéžæããŸããåæã«ãããšãã°100ãã€ã¯ãç§ãã€æéã倿ŽããŸãã
次ã«ãå€0ã瀺ããŸãã
æäœéå¿ èŠãªããŒã¿ã»ãããäœæããŸãããæ®ãã¯ãã³ã§ç°¡åã«å®è¡ã§ããŸãããã¡ã€ã«ããšã¯ã¹ããŒãããŸãããããè¡ãã«ã¯ãã¡ãã¥ãŒé ç®[ãã¡ã€ã«]-> [ãšã¯ã¹ããŒã]-> [波圢]ã
éžæããŸãããã¡ã€ã«ã¿ã€ãVerilogTestbenchãéžæããŸãïŒã¡ãªã¿ã«ãSystemVerilogã§ã¯ãªãã®ã¯æ®å¿µã§ãããå°æ¥çã«ã¯ãã³ã§ä¿®æ£ã§ããããã«ãªããŸãïŒããã¡ã€ã«åãèšå®ããŸãããã©ãããŠïŒãã«ã¡ãªãã§ãparazit_tbãšåä»ããŸããã
ããã ãã§ããä»®èšäœå® ãä¿åããå¿ èŠã¯ãããŸããããModelSimãéããããšãã§ããŸãã
次ã«ã¢ãã«ãã©ãããã
ããã¯ãã®ãããªæ²ãã£ããããããŸã æ¢è£œã®Verilogãã¡ã€ã«ã§ãããã·ã¹ãã ã¯ç§ãã¡ã®ããã«äœæãããŸããïŒ
`timescale 1ns / 1ns
module parazit_tb ;
reg sof ;
reg we ;
wire [15:0] sum ;
reg [7:0] data ;
reg clk ;
sum
DUT (
.sof (sof ) ,
.we (we ) ,
.sum (sum ) ,
.data (data ) ,
.clk (clk ) );
// "Constant Pattern"
// Start Time = 0 ns, End Time = 100 us, Period = 0 ns
initial
begin
end
initial
#0 $stop;
endmodule
èªååã«ããããã«ãã£ã³ã°ãããã¯ãäœæããå¿ èŠããªããªããŸãããããã«ãããå€ãã®ã€ã³ã¿ãŒãã§ãŒã¹ä¿¡å·ãããã°ãèªååã¯ãã¹ãŠã®åè·¯ãçŽ çŽã«ç»é²ããŠæ¥ç¶ããŸããå人çã«ãç§ãæåã§ãã¹ãã¹ã€ãŒããäœæãããšããæ°ã®ãããã®ã¯ä¿¡å·ãšãã®è»¢éãèšè¿°ããããã»ã¹ã§ããããã§ããã®ãã¡ã€ã«ã«ããããã°ãããåèšã¢ãžã¥ãŒã«ã«åœ±é¿ãäžããç°å¢ã¢ãã«ãäœæããŸãã
ã芧ã®ãšããããªã·ã¬ãŒã¿ãŒã®å®æ°ãèšå®ããŠãæå³ããããŸãããããããããã§ãããã¹ãŠã®åè·¯ãäœæããããã¹ã察象ã®ã¢ãžã¥ãŒã«ãæ¥ç¶ãããæåã®ã»ã¯ã·ã§ã³ãäœæãããŠããŸããã³ãŒããæ¹è¯ããŠã¿ãŸãããã 1ã€ç®ã¯ãè¡ãåé€ããŠãã¬ãŒã¯ãã€ã³ããåé€ããããšã§ãã
initial
#0 $stop;
次ã«ãã¯ããã¯ãžã§ãã¬ãŒã¿ãŒã¢ãã«ã远å ããŸãïŒå€ãQuartusesã«ãã£ãŠäœæãããçŽ æŽããããžã§ãã¬ãŒã¿ãŒãæããã§ãïŒããã§åšæ³¢æ°ãã¡ã¬ãã«ãã§èšå®ããåšæã§åèšç®ããããšãèããªãã§ãã ãããããã«ã¯ååšæã§ãïŒã
always
begin
clk = 0;
#5;
clk = 1;
#5;
end
次ã«ãããã€ãã®ããŒã¿ãã€ããéä¿¡ããå¿ èŠããããŸãããããè¡ãæãç°¡åãªæ¹æ³ã¯æåã®ã»ã¯ã·ã§ã³ã«ãããŸãããããã«åãã¹ã¢ã¯ã»ã¹ãã§ãŒãºãèšè¿°ãããšããã®ã»ã¯ã·ã§ã³ã®ã³ãŒãã¯æ··ä¹±ããŸãããããã£ãŠãç§ã¯æ¬¡ã®ã¿ã¹ã¯ãå®è¡ããŸãïŒã¿ã€ã€ã¢ãã«ãšããŠæ©èœããã®ã¯åœŒå¥³ã§ãïŒã
task SendByte (input reg[7:0] D);
begin
data = D;
we = 1;
@(posedge clk);
#1
we = 0;
end
endtask
ããŠãæåã®ãããã¯ã§ãã¹ãæäœããããã®å®æ°ã®ç®çãšãµã€ã¯ã«ã®åŒã³åºããèšè¿°ããŸããã¬ã³ãŒãã¿ã€ãïŒ123ã¯ã123åäœã®æéåŸ æ©ããæå³ããããšãæãåºãããŠãã ãããããç§ã§ãããæã£ãŠããŸãããŸããå²ãåœãŠã¯ã·ãŒã±ã³ã·ã£ã«ã§ããããããç¢å°ãã§ã¯ãªããçãããæäœã䜿çšããããšãæãåºããŠãã ããããããã£ãŠã次ã®äž»èŠãªãã¹ãã³ãŒãããããŸãã
ãããèŠã
initial
begin
sof = 0;
we = 0;
data = 0;
#13;
//
sof = 1;
SendByte (1);
//
sof = 0;
SendByte (5);
SendByte (1);
//
#20;
SendByte (1);
end
å šäœãšããŠãå®å šãªã¢ãžã¥ãŒã«ã³ãŒãã¯æ¬¡ã®ããã«ãªããŸãã
å®å
šãªã¢ãžã¥ãŒã«ã³ãŒãã衚瀺ããŸãã
`timescale 1ns / 1ns
module parazit_tb ;
reg sof ;
reg we ;
wire [15:0] sum ;
reg [7:0] data ;
reg clk ;
sum
DUT (
.sof (sof ) ,
.we (we ) ,
.sum (sum ) ,
.data (data ) ,
.clk (clk ) );
always
begin
clk = 0;
#5;
clk = 1;
#5;
end
task SendByte (input reg[7:0] D);
begin
data = D;
we = 1;
@(posedge clk);
#1
we = 0;
end
endtask
// "Constant Pattern"
// Start Time = 0 ns, End Time = 100 us, Period = 0 ns
initial
begin
sof = 0;
we = 0;
data = 0;
#13;
//
sof = 1;
SendByte (1);
//
sof = 0;
SendByte (5);
SendByte (1);
//
#20;
SendByte (1);
end
endmodule
ãã¹ãã±ãŒã¹ã®æºåãå®äºãã
ãã®ããã¹ãããã¹ãã¹ã€ãŒãã«è¿œå ãããšããæ¥ãŸããããããè¡ãã«ã¯ããã§ã«èªèãããŠãããã€ã¢ãã°ã«ç§»åã
ãŸãããããã§ã¯ã»ãããäœæããããªã¹ãããéžæããŸããå°æ¥çã«ã¯ãã»ããã远å ãããã«ã€ããŠãªã¹ãã倧ãããªããŸã...éžæãããã[ç·šé]ãã¿ã³ãæŒããŸããèšå®ã3åç·šéããŸããã
- parazit_tb.vãã¡ã€ã«ããªã¹ãã«è¿œå ããŸããã
- parazit_tb.vãã¡ã€ã«ã§ã¯ããããã¬ãã«ã¢ãžã¥ãŒã«ã®ååã¯parazit_tbã§ããããïŒåã®ã»ã¯ã·ã§ã³ã®ãœãŒã¹ã確èªããããšã§ç¢ºèªã§ããŸãïŒããã¹ããã³ãè¡ã®ãããã¬ãã«ã¢ãžã¥ãŒã«ã«ãã®ååãå ¥åããŸããã
- ã·ãã¥ã¬ãŒã·ã§ã³ã10ãã€ã¯ãç§å®è¡ããŠããäžæåæ¢ãããšèšããŸãããã©ã¡ãããšããã°ãæåå¶åŸ¡ãã¿ã³ãæŒããŠè¡ããŸãã
åèš
ãã¹ãŠãéããŸããModelSimãå床å®è¡ããŸãããã¹ãŠãæ£ããæ©èœããŠããããšãããããŸããããŒã¿ãå ¥ããéé¡ã«ã«ãŠã³ããããŸããã¯ããã¯ïŒäžã®ããŒã¿ããªãå Žåãæã ã¯ãŒãã§ããïŒãéã¯å¢å ããŸããã
ã¢ããªã³ã°ç°å¢èªäœã®äœ¿ç𿹿³ã¯ãããã€ãã®èšäºã®ãããã¯ã§ããããããããªåœ¢åŒã§ãããããäžè¬çã«ãQuartusç°å¢ããVerilogèšèªã§ãã¹ãããã°ããæºåããŠå®è¡ããæ¹æ³ã«ç²ŸéããŸããã
ã·ãã¥ã¬ãŒã·ã§ã³ããã°ããå®è¡ããæ¹æ³ãããã£ãã®ã§ãUSBã¢ãã©ã€ã¶ãŒãããã®ç°å¢ã¢ãã«ãã¹ã±ããããŠããã®åäœããã¹ãã§ããŸããåæã«ãQuartusã§ã¯ãããŠã¹ãã䜿çšããŠãã¹ãŠãæ§æã§ãããããModelSimã®ã¹ãã«ã¯1ã€ãèšæ¶ããŠããŸããã圌ã¯å¿ èŠãªãã¹ãŠã®ã¹ã¯ãªãããèªåã§çæããModelSimç°å¢ãèªåã§åŒã³åºããŸãããŸããã¢ãã«ã®ããŒã¹ãèªåã¢ãŒãã§äœæããŸããããæåã§å€æŽããå¿ èŠããããŸããã
ããããããå€éšç°å¢ã®èŠçŽ ã®1ã€ã¯ãULPIã¢ãžã¥ãŒã«ã§ããèªåã§ã¢ãã«ãéçºããã«ã¯ããŸãããã®ãã€ã¯ãåè·¯ã®åäœã®ããžãã¯ãæ³šææ·±ãçè§£ããå¿ èŠããããŸãããããŠååã®èšäºã§ç§ã¯ãããéåžžã«ããªãããŒã ãšèšããŸããã第äºã«ãã¢ãã«ã³ãŒãã®éçºã«å€ãã®æéãè²»ããå¿ èŠããããŸãããããŠããã®äžã®ãšã©ãŒã®æé€...æ¢è£œã®ãã®ãèŠã€ããæ¹ãç°¡åã§ããããšã¯æããã§ããããããæ¢è£œã®ã¢ãã«ã¯SystemCèšèªã§ã®ã¿èŠã€ãããŸããããããã£ãŠã次ã®èšäºã§ã¯ããã®èšèªã䜿çšããŠã·ã¹ãã ãã¢ãã«åããæ¹æ³ãåŠç¿ããŸãã