2024-03-01ãã1ã¶æéã®è¨äºä¸è¦§
LiteXã®LiteScopeã§ã¯ã©ãã«ãç´°ããä¿¡å·ãåå¾ãããã¨ãã§ããªãã®ã§ãXilinxã®ç´æ£ã®æ³¢å½¢ã®ãããã°ãã¼ã«ã§ããILA(Integrated Logic Analyzer)ã使ã£ã¦å é¨ã®ä¿¡å·ã観å¯ããæ¹æ³ãè¦ã¦ã¿ãã ä¸å¿ãä¸æ©ãã¤åé¡ãç¹å®ãã¦ããããã¾ã ã¾ã åãã¦ããªãâ¦
LiteXã®LiteScopeã§ã¯ã©ãã«ãç´°ããä¿¡å·ãåå¾ãããã¨ãã§ããªãã®ã§ãXilinxã®ç´æ£ã®æ³¢å½¢ã®ãããã°ãã¼ã«ã§ããILA(Integrated Logic Analyzer)ã使ã£ã¦å é¨ã®ä¿¡å·ã観å¯ããæ¹æ³ãè¦ã¦ã¿ãã ä¸å¿ãä¸æ©ãã¤åé¡ãç¹å®ãã¦ããããã¾ã ã¾ã åãã¦ããªãâ¦
LiteXã®LiteScopeã§ã¯ã©ãã«ãç´°ããä¿¡å·ãåå¾ãããã¨ãã§ããªãã®ã§ãXilinxã®ç´æ£ã®æ³¢å½¢ã®ãããã°ãã¼ã«ã§ããILA(Integrated Logic Analyzer)ã使ã£ã¦å é¨ã®ä¿¡å·ã観å¯ããæ¹æ³ãè¦ã¦ã¿ãã ããã¡ãã£ã¨ç´°ããä¿¡å·ãåå¾ããããã«ãtclã§ILAãæ¿å ¥ãâ¦
LiteXã®LiteScopeã§ã¯ã©ãã«ãç´°ããä¿¡å·ãåå¾ãããã¨ãã§ããªãã®ã§ãXilinxã®ç´æ£ã®æ³¢å½¢ã®ãããã°ãã¼ã«ã§ããILA(Integrated Logic Analyzer)ã使ã£ã¦å é¨ã®ä¿¡å·ã観å¯ããæ¹æ³ãè¦ã¦ã¿ãã ããç¨åº¦ä¿¡å·æ³¢å½¢ãåãã¦ããã®ã§ãå¿ è¦ãªåæã«ãããã°ä¿¡â¦
LiteXã®LiteScopeã§ã¯ã©ãã«ãç´°ããä¿¡å·ãåå¾ãããã¨ãã§ããªãã®ã§ãXilinxã®ç´æ£ã®æ³¢å½¢ã®ãããã°ãã¼ã«ã§ããILA(Integrated Logic Analyzer)ã使ã£ã¦å é¨ã®ä¿¡å·ã観å¯ããæ¹æ³ãè¦ã¦ã¿ãã ã¾ããILAç¡ãã§LiteXã§FPGAããããã»ã¹ããªã¼ã ãã¡ã¤ã«ãâ¦
LiteXã§ã©ã®ããã«æ³¢å½¢ããã³ããã¦ãããã°ããã°ãããã調æ»ãã¦ããã®ã ããLiteXã¯ããªãã¸ãéãã¦ãã¹ãã«å¯¾ãã¦æ å ±ããã³ãããæ©è½ãå¤ãåãã£ã¦ãããããã ããã¯ä¾¿å©ã ã ChipScopeã®ããã«å é¨ã®ä¿¡å·ã¾ã§åãåºãããã®ã ãããã®ããã«ã¯ãâ¦
LiteXã§ã©ã®ããã«æ³¢å½¢ããã³ããã¦ãããã°ããã°ãããã調æ»ãã¦ããã®ã ããLiteXã¯ããªãã¸ãéãã¦ãã¹ãã«å¯¾ãã¦æ å ±ããã³ãããæ©è½ãå¤ãåãã£ã¦ãããããã ããã¯ä¾¿å©ã ã ã¾ãã¯ãRTLã·ãã¥ã¬ã¼ã·ã§ã³ç°å¢ï¼litex_simã§è©¦ãã¦ã¿ãã å種æ å ±â¦
LiteXã¯ãªã¼ãã³ã½ã¼ã¹ã®SoCæ§æç°å¢ãªã®ã ããããã«å¯¾ãã¦èªä½CPUã®ã¤ã³ãã°ã¬ã¼ã·ã§ã³ã試è¡ãã¦ã¿ãã æ¢åã®ã·ãã¥ã¬ã¼ã·ã§ã³ç°å¢ã«å¯¾ãã¦ã以ä¸ã®å®ç¾©ã追å ãã¦ãLiteXç¨ã«æ¹é ãã¦ã¿ãã CLINT / PLICã®ã¡ã¢ãªããããå®ç¾©ããã { "base": "0x0200_â¦
HPCA2024ã§éå¬ããããRISC-Vã®ã¢ã¦ãã»ãªãã»ãªã¼ãCPU XiangShanã«ã¤ãã¦ã®è³æãå ¬éããã¦ããã®ã§ãèªãã§ã¿ããã¨ã«ããã ãã£ããèªã¿ããã®ã§ã1ãã¼ã¸ãã¤è¦ç¹ãæãã¦ããã å®éã®GitHubãªãã¸ããªããã¦ã³ãã¼ããã¦ããããã試ãã¦ã¿ããã¨â¦
HPCA2024ã§éå¬ããããRISC-Vã®ã¢ã¦ãã»ãªãã»ãªã¼ãCPU XiangShanã«ã¤ãã¦ã®è³æãå ¬éããã¦ããã®ã§ãèªãã§ã¿ããã¨ã«ããã ãã£ããèªã¿ããã®ã§ã1ãã¼ã¸ãã¤è¦ç¹ãæãã¦ããã 次ã¯ããã¤ã¯ãã¢ã¼ããã¯ãã£ã®ãããã¯ã«ã¤ãã¦ãç¶ãã xiangshan-â¦
HPCA2024ã§éå¬ããããRISC-Vã®ã¢ã¦ãã»ãªãã»ãªã¼ãCPU XiangShanã«ã¤ãã¦ã®è³æãå ¬éããã¦ããã®ã§ãèªãã§ã¿ããã¨ã«ããã ãã£ããèªã¿ããã®ã§ã1ãã¼ã¸ãã¤è¦ç¹ãæãã¦ããã 次ã¯ããã¤ã¯ãã¢ã¼ããã¯ãã£ã®ãããã¯ã«ã¤ãã¦ãç¶ãã xiangshan-â¦
HPCA2024ã§éå¬ããããRISC-Vã®ã¢ã¦ãã»ãªãã»ãªã¼ãCPU XiangShanã«ã¤ãã¦ã®è³æãå ¬éããã¦ããã®ã§ãèªãã§ã¿ããã¨ã«ããã ãã£ããèªã¿ããã®ã§ã1ãã¼ã¸ãã¤è¦ç¹ãæãã¦ããã 次ã¯ããã¤ã¯ãã¢ã¼ããã¯ãã£ã®ãããã¯ã«ã¤ãã¦ãç¶ãã xiangshan-â¦
HPCA2024ã§éå¬ããããRISC-Vã®ã¢ã¦ãã»ãªãã»ãªã¼ãCPU XiangShanã«ã¤ãã¦ã®è³æãå ¬éããã¦ããã®ã§ãèªãã§ã¿ããã¨ã«ããã ãã£ããèªã¿ããã®ã§ã1ãã¼ã¸ãã¤è¦ç¹ãæãã¦ããã 次ã¯ããã¤ã¯ãã¢ã¼ããã¯ãã£ã®ãããã¯ã«ã¤ãã¦ã xiangshan-doc.reâ¦
UVMã«å ¥éãããã¦ãç°¡åãªä¾ãç¨ãã¦è©¦ãã¦ã¿ããã¨ã«ããã以ä¸ã®ãããªã·ã³ãã«ãªãã¶ã¤ã³ããã¹ããããã vlsiverify.com msyksphinz.hatenablog.com msyksphinz.hatenablog.com 次ã«Monitorã¨Scoreboardã«ã¤ãã¦ã¿ã¦ãããã¨æãã monitorã«ã¤ãã¦ã¯â¦
HPCA2024ã§éå¬ããããRISC-Vã®ã¢ã¦ãã»ãªãã»ãªã¼ãCPU XiangShanã«ã¤ãã¦ã®è³æãå ¬éããã¦ããã®ã§ãèªãã§ã¿ããã¨ã«ããã ãã£ããèªã¿ããã®ã§ã1ãã¼ã¸ãã¤è¦ç¹ãæãã¦ããã xiangshan-doc.readthedocs.io https://github.com/OpenXiangShan/Xiaâ¦
UVMã«å ¥éãããã¦ãç°¡åãªä¾ãç¨ãã¦è©¦ãã¦ã¿ããã¨ã«ããã以ä¸ã®ãããªã·ã³ãã«ãªãã¶ã¤ã³ããã¹ããããã vlsiverify.com adderã¨ã®ã¤ã³ã¿ãã§ã¼ã¹ã¨ãã¦ã以ä¸ãå®ç¾©ãããããã«ãããã¹ããã³ãã¨DUTãæ¥ç¶ããã verify/addr_if.sv interface add_iâ¦
UVMã«å ¥éãããã¦ãç°¡åãªä¾ãç¨ãã¦è©¦ãã¦ã¿ããã¨ã«ããã以ä¸ã®ãããªã·ã³ãã«ãªãã¶ã¤ã³ããã¹ããããã vlsiverify.com module adder (input logic clk, input logic reset, input logic [ 7: 0] in1, input logic [ 7: 0] in2, output logic [ 8: 0]â¦
HPCA2024ã§éå¬ããããRISC-Vã®ã¢ã¦ãã»ãªãã»ãªã¼ãCPU XiangShanã«ã¤ãã¦ã®è³æãå ¬éããã¦ããã®ã§ãèªãã§ã¿ããã¨ã«ããã ãã£ããèªã¿ããã®ã§ã1ãã¼ã¸ãã¤è¦ç¹ãæãã¦ããã xiangshan-doc.readthedocs.io https://github.com/OpenXiangShan/Xiaâ¦
SystemVerilogã§åè·¯è¨è¿°ããã¦ãã¦ãå¼ã£ããã£ãã¨ããã®ã¡ã¢ï¼ www.edaplayground.com SystemVerilogã®Interfaceå ã§Functionãå®ç¾©ããå ´åãããã使ãå ´åã«ã¯æ³¨æãå¿ è¦ã ã interface interface_counter; logic valid; logic [ 3: 0] counter; functâ¦
èªä½CPUã®åè·¯é¢ç©åæ¸ã®ç¶ãã次ã¯ROBã®é¢ç©åæ¸ãæ¤è¨ããã ROBãCAMã§æ§æããè¦ç´ ã¨ãRAMã§æ§æããè¦ç´ ãããã ããã¾ã§ãã¹ã¦CAMã§æ§æããè¦ç´ ããRAMã«å¤æ´ãã¦æ§æããã // Instruction's static information from decoder typedef struct packeâ¦
èªä½CPUã®åè·¯é¢ç©åæ¸ã®ç¶ããã¹ãã¢ãããã¡ã®é¢ç©ãçµæ§å¤§ããã®ã§ãåæ¸ãæ¤è¨ããã ã¹ãã¢ãããã¡ã大ãããªã£ã¦ããåå ã¯ãç´æ¥çãªãã®ã¯ããããããªãã®ã ããAtomicå½ä»¤ãå¦çãããã£ã¼ã«ããå°ãªãã¨ãããªãé¢ç©ã使ç¨ãã¦ããã®ã§ããããâ¦
èªä½CPUã®ããã¤ãã®é¢ç©æé©åãè¡ã£ã¦ããããã¾ããã°ãåºã¦ãããä»åº¦ã¯ãããããã¯ç³»ã ã åé¡ã¯ãLSUã®å½ä»¤çºè¡ãã¥ã¼ã«å¯¾ãã¦ãªãã¬ã¤ãã¥ã¼ãå°ããè¨è¨ãã¦ãããã¨ã«ããã ä¾ãã°ããªãã¬ã¤ãã¥ã¼ã®ã¨ã³ããªæ°ãNã§ããããªãã¬ã¤ãã¥ã¼ã¾ã§ã®ãâ¦
ç¾å¨ã®èªä½CPUã¯ãçµæ§é¢ç©ã大ããã¦é常ã®FPGAã«ä¹ãåããªããã©ãã«ãä¹ãåããããã«ãé¢ç©åæ¸ãæ¤è¨ãã¦ããã LSUã®ä¸ã§å§åçã«é¢ç©ã巨大ãªã®ãSTQã ãSTQã巨大ãªè¦å ã¯ããã¤ãããã LDQã¨ç°ãªããåã¨ã³ããªã¯ã¢ãã¬ã¹ã¨ãã¼ã¿ã®ä¸¡æ¹ã管çãâ¦
ç¾å¨ã®èªä½CPUã¯ãçµæ§é¢ç©ã大ããã¦é常ã®FPGAã«ä¹ãåããªããã©ãã«ãä¹ãåããããã«ãé¢ç©åæ¸ãæ¤è¨ãã¦ããã LSUã®ä¸ã§å§åçã«é¢ç©ã巨大ãªã®ãSTQã ãSTQã巨大ãªè¦å ã¯ããã¤ãããã LDQã¨ç°ãªããåã¨ã³ããªã¯ã¢ãã¬ã¹ã¨ãã¼ã¿ã®ä¸¡æ¹ã管çãâ¦
ç¾å¨ã®èªä½CPUã¯ãçµæ§é¢ç©ã大ããã¦é常ã®FPGAã«ä¹ãåããªããã©ãã«ãä¹ãåããããã«ãé¢ç©åæ¸ãæ¤è¨ãã¦ããã LSUã®ä¸ã§å§åçã«é¢ç©ã巨大ãªã®ãSTQã ãSTQã巨大ãªè¦å ã¯ããã¤ãããã LDQã¨ç°ãªããåã¨ã³ããªã¯ã¢ãã¬ã¹ã¨ãã¼ã¿ã®ä¸¡æ¹ã管çãâ¦
åã®ããã°ã®è¨äºã§ã¯ãLVTãç¨ããSingle Port RAMãMulti Portã«è¤è£½ããããã®æ¹æ³ã«ã¤ãã¦èª¿æ»ããã msyksphinz.hatenablog.com LVT(Live Value Table)ãç¨ããææ³ã§ã¯ãåRAMã¤ã³ããã¯ã¹ã«ã¤ãã¦ãã©ã®ãã³ã¯RAMã«ææ°ã®å¤ãæ¸ãè¾¼ã¾ãã¦ãããã示â¦