ãã¼ãç´ äººã32bit CPUãFPGAã§èªä½ãã¦åããã¾ã§èªãã æ¬ã®ã¾ã¨ã
ç·åãããã®ä¸åº¦ã¯èªåã§CPUãä½ã£ã¦ã¿ãããã®ã ãã©ãICã§LEDããã«ãã«ãããç¨åº¦ã®çµé¨ãããªããã¼ãç´ äººãªä¿ºã ã£ãã®ã§ãCPUを自作してる東大生ãªã©ãé ãããè¦ã¦æ§ãã¦ãã ãã ã£ããããããããä¸å¹´åã®ãã¨ããMIPSãªãã¦ç°¡åã«ä½ãã¾ããï¼ãã¨Kããï¼âFPGAã§Lispãã·ã³ãèªä½ãããããªäººï¼ã«è¨ããã¦ããããã ãããããKããã¯ããã§ãããããããããããããã¦ä¿ºã«ãã§ããããªããï¼ãã¨æã£ãããã®ä¸è¨ããªããã°32bitã®CPUãèªä½ããããªãã¦èããªãã£ãã ããã
ããããä¸å¹´ã¡ãããã¨ãã«ä»å¹´ã®æ£æä¼ã¿ãFPGA温泉ã§ãã£ã¤ãããã°ã£ã¦ããªãã¨ãMIPS Iãµãã»ããã®èªä½CPUãåãããããã¯ãã£ãããããè¨ç®ãã¦ãã¨ããã
ã¡ãªã¿ã«ãããã¯ãããªæãã®ãã£ããããã®ã³ã¼ããCã§æ¸ãã¦ã
void main() {
int i, *r = (int *)0x7f00;
while (1) {
for (i = 1; i <= 25; i++) {
*r = fib(i);
}
}
}
int fib(int n) {
if (n == 1) return 0;
if (n == 2) return 1;
return fib(n-2) + fib(n-1);
}ãããgccã§MIPSãã¤ããªã«ã¯ãã¹ã³ã³ãã¤ã«ããFPGAãã¼ãã«èªã¿è¾¼ãã§åããã¦ãã
ãã®CPUã¯è¶£å³ã§ä½ã£ãã®ã§ãå®ç¨æ§ã¯ã¾ã£ãããªããã¡ã¢ãªã¯32KBã ãfloatãä¾å¤ããã£ãã·ã¥ããã¹ããªãLinuxã¯åããªããã§ããCããã³ã³ãã¤ã«ããMIPSãã¤ããªã宿©ã§åããã¨ããç®æ¨ãéæã§ãã¦æç¡éã§ãããå®è£
ããHDLã³ã¼ãã¯CPU32ã¨ããååã§ç½®ãã¨ãããããã¦ãããä¸å¹´ããããã¼ãã¦ã§ã¢ã®è¨è¨ã®åå¼·ããã¦ããä¸ã§ããã¯ã¨ã¦ãå½¹ã«ç«ã£ãã£ã¦ããæ¬ããããããã£ãã®ã§ã以ä¸ã«ã¾ã¨ãã¦ããããã
ã¾ãã¯Lãã«ããã¸ã¿ã«æè¨ãã·ãªã¢ã«éä¿¡ããã
ä¸å¹´ã»ã©åã«ãªããã©ãå ¥éç¨FPGAãã¼ãã®å®çªTerasic DE0ãè²·ã£ã¦ãLEDããã«ãã«ãããããããã¸ã¿ã«æè¨ãä½ã£ããããã¨ããããå§ããã
ãã®ææã«ãä¸è©±ã«ãªã£ãã®ããã®ãããã®æ¬ã

- ä½è : è¹äºæ»å
- åºç社/ã¡ã¼ã«ã¼: CQåºç
- çºå£²æ¥: 2011/07/22
- ã¡ãã£ã¢: åè¡æ¬
- è³¼å ¥: 1人 ã¯ãªãã¯: 44å
- ãã®ååãå«ãããã° (15ä»¶) ãè¦ã

FPGA ãã¼ãã§å¦ã¶çµè¾¼ã¿ã·ã¹ãã éçºå ¥éã?Alteraç·¨?
- ä½è : å°æåª
- åºç社/ã¡ã¼ã«ã¼: æè¡è©è«ç¤¾
- çºå£²æ¥: 2011/09/22
- ã¡ãã£ã¢: 大忬
- è³¼å ¥: 3人 ã¯ãªãã¯: 31å
- ãã®ååãå«ãããã° (19ä»¶) ãè¦ã
ä¸ã®æ¬ã¯ãããé«ãããVerilog HDLï¼ãã¼ãã¦ã§ã¢è¨è¨ç¨è¨èªï¼ã®è§£èª¬ã¨ãã¦ã¯ãã¹ãã¨ã¯è¨ããªããã©ãTerasic DE0ãè²·ã£ã¦ãã¦ã¾ãLãã«ããããã£ã¦äººã«ã¯ã¡ããã©ããå 容ãLãã«ã§ããããå®çªã§ãããã¸ã¿ã«æè¨ãæ¸ãã¦ã«ã¦ã³ã¿ãåæåè·¯ã®æ¸ãæ¹ãå¦ã³ãã¤ã¥ãã¦MIDIに繋いで音を出したりãPCã¨ã·ãªã¢ã«éä¿¡ãããããã£ã¦æãã ã£ãã®ãä¸å¹´åã®å¹´æ«å¹´å§ã
MIDIãã¼ãã¼ããã¤ãªãã§åé³ãåºã
ãã£ã¨ããFPGAã®å¦ç¿ã§ã¾ããã¼ãã«ãé«ãã®ã¯ãDE0ãªã©ã®FPGAã®å®æ©ã1ä¸åãããã§è³¼å ¥ãã¦ãããã«Quartusãªã©ã®ãã³ãã¼ãã¼ã«ãåä½ããç°å¢ãç¨æããã¨ããããã¼ã«ã¯ç¡åãªã®ã ãã©ãã©ããWindowsã§ããåããªãã®ãããã¯ã

Alteraã®FPGAéçºãã¼ã«Quartus II Web Edition
䏿¹ã以ä¸ã®æ¬ã§ã¯Icarus Verilogã¨ããMacã§ãåä½ãããªã¼ãã³ã½ã¼ã¹ã®ãã¼ã«ã使ããã½ããã¦ã§ã¢ã»ã¨ã³ã¸ãã¢åãã«FPGAéçºã®ãã¨ã¯ããã解説ããã¦ãã®ã§ãã¾ãã¯å®æ©ãªãã§HDLã®Hello Worldãä½é¨ãã¦ã¿ããã¨ãã人ã«ãããããããã

- ä½è : ä¸å¥½å¥æ
- åºç社/ã¡ã¼ã«ã¼: CQåºç
- çºå£²æ¥: 2013/06/05
- ã¡ãã£ã¢: åè¡æ¬
- ãã®ååãå«ãããã° (2ä»¶) ãè¦ã
ããã¦ããã²ã¨ã¤ãæè¿Vengineerããã«æãã¦ããã£ãã®ãEDA Playgroundããã¼ã«çãä¸åã¤ã³ã¹ãã¼ã«ããã«ãã©ã¦ã¶ä¸ã§Verilog HDLã®ã·ãã¥ã¬ã¼ã¿ã¼ã使ããªããã®åºç¤ã¬ãã¹ã³ãé²ãããããè±èªãè¦ã«ãªããªã人åãã ã
ã¤ã¥ãã¦4bit CPUãä½ã
ã¤ã¥ãã¦ã¯4bit CPUãä½ã£ã¦ã¿ããããã§ãç¥ããããã´ããã¨è¨ãããã®åèã«ããã¸ããä¸è©±ã«ãªã£ãã

- ä½è : 渡波é
- åºç社/ã¡ã¼ã«ã¼: æ¯æ¥ã³ãã¥ãã±ã¼ã·ã§ã³ãº
- çºå£²æ¥: 2003/10/01
- ã¡ãã£ã¢: åè¡æ¬ï¼ã½ããã«ãã¼ï¼
- è³¼å ¥: 35人 ã¯ãªãã¯: 445å
- ãã®ååãå«ãããã° (193ä»¶) ãè¦ã
ãã®æ¬ãååã¾ãã£ããã¢ããã°ãªè©±ã ã£ãããFPGAã©ããããã©ã®TTL ICã§CPUãçµãã ãã¨è²ã ããããæ¬ï¼è¤ãè¨èï¼ãªã®ã ãã©ãããããããç¹°ãè¿ãèªã¿ãªããåãè¨è¨ã®4bit CPUãHDLã§æ¸ãã¦ãã使¥ãéãã¦ãã¯ããã¤ã¾ãCPUã£ã¦ãããããã¨ãªãã ãªï¼ã¨ç®ããããããªä½é¨ãã§ãããã¨ããããèè ããè¿·ã£ããããã«æ»ã£ã¦ãã¦ãã ãããã¨è¨ãã1bitããªããããããã®ãã¼ã¸ããããçé«ã ãªãã¨æããã¨ãã°ãã自分でHDLで書いた4bit CPUãDE0ã§åãããæ¬æ¸ã®å·»æ«ã«ããã©ã¼ã¡ã³ã¿ã¤ãã¼ã®ããã°ã©ã ãåããã¨ãã¯å¬ããã£ãããMy first CPU!
ãã®ææã«ãä¸è©±ã«ãªã£ãä»ã®æ¬ã¯ããã®ãããã

Microprocessor Design Using Verilog HDL
- ä½è : Monte Dalrymple
- åºç社/ã¡ã¼ã«ã¼: Circuit Cellar, Incorporated
- çºå£²æ¥: 2012/02/17
- ã¡ãã£ã¢: ãã¼ãã¼ããã¯
- ãã®ååãå«ãããã°ãè¦ã
ä¸ã®æ¬ã¯ãããã©ã³ã®ãã¼ãè¨è¨è ãVerilog HDLã§Z80ãã¾ããã¨å®è£ ãã¦ã¿ããã©ããªããï¼ãã£ã¦ããè¶£æ¨ã®æ¬ï¼è±èªï¼ããã¡ãããæ¬æ ¼çãª8bit CPUãHDLã§ã¬ãªã¬ãªæ¸ãããã®ã³ã¼ãã£ã³ã°ã¹ã¿ã¤ã«ããã©ã¯ãã£ã¹ããã¹ãæ¹æ³ãããã¦è¨è¨ææ³ï¼ã¾ãã¯ã¹ãã¼ããã·ã³ã表è¨ç®ã§è¨è¨ããï¼ãç´¹ä»ãã¦ã¦ããªãã»ã©ããã¯ãããªãµãã«ä»äºããã®ããã¨æå¿ã
岸æ¬ããã®æ¬ã¯HDLã§8bit CPUãä½ããã®ã§ã4bit CPUãåããå¾ã«èªãã®ã«é©ããå
容ãä¾ãã°CPUã®åã³ã³ãã¼ãã³ããHDLã§æ¸ãã¨ã©ããªããï¼ããã¹ããã³ãã¯ã©ãæ¸ããï¼ã£ã¦ã¤ã¡ã¼ã¸ãæ´ãã®ã«å½¹ã«ç«ã£ãã
Verilog HDLã®åºç¤ãã·ãã¥ã¬ã¼ã·ã§ã³ãããã¦æ¤è¨¼ææ³ã®ãåå¼·
ããããã®è¾ºãã§ãã©ããVerilog HDLã®ãåå¼·ã§ã«ãã«ã¤ãããã£ããä¾ãã°ä»£å ¥ã®æ§æã«ã=ãï¼ããããã³ã°ä»£å ¥ï¼ã¨ã<=ãï¼ãã³ããããã³ã°ä»£å ¥ï¼ã¨ãã2種é¡ãããã®ã ãã©ããã¹ã¦ã®æ¼ç®ãåæä¸¦åã§é²ããã¸ã¿ã«åè·¯ãªã®ã«ããããã³ã°ã¨ããã³ããããã³ã°ã£ã¦ã©ããããã¨ï¼ãã£ã¦ãã°ããçè§£ã§ããªãã£ãã
çããè¨ãã¨ãVerilog HDLã¯ããããåè·¯åæç¨ã®è¨èªãããªãã¦ãåè·¯ã·ãã¥ã¬ã¼ã¿ã¼ã®ãµãã¾ããè¨è¿°ããããã®è¨èªãã¨ãã¦çã¾ãããã®ã§ãããããããã³ã°ã¨ããã³ããããã³ã°ã¨ã¯ã·ãã¥ã¬ã¼ã¿ã®é次å¦çã®ãµãã¾ããæå®ãããã®ããªã®ã ãã¤ã¾ããHDLããã¡ãã¨çè§£ããã«ã¯ãã·ãã¥ã¬ã¼ã¿ã¼ã®ä½¿ãæ¹ããããã©ãåä½ããªãããã¸ã¿ã«åè·¯ã®åããæ¨¡å£ãã¦ãã®ããæèããå¿ è¦ãããããã£ã¦ããªã¼å çã«æãã¦ããã£ãã
4bit CPUãä½ãåãããã¾ã§ã¯ãã»ã¨ãã©ã·ãã¥ã¬ã¼ã¿ã¼ã使ããã«æ¸ã¾ãã¦ãããåè·¯ãLSIã«ç¼ãä»ããASICã¨ã¯éããFPGAã¯èªåã§æ¸ããã³ã¼ããããã«å®æ©ã§è©¦ãããããããã°ãããã£ããSignalTapãChipScopeã¨å¼ã°ãããã¸ãã¯ã»ã¢ãã©ã¤ã¶ã使ãã°ããç¨åº¦ã¯ä¿¡å·ã追ããããã ããã£ã¦ãVerilog HDLã®ã·ãã¥ã¬ã¼ã¿ã¼ç¨è¨èªã¨ãã¦ã®ä½¿ããæ¹ãç¥ãç±ããªãã£ããå®ã®ã¨ãããVerilog HDLには回路合成とシミュレーションという2つの用途(セマンティクス)が存在し、しかも計算パラダイムもいろいろ混在してるã®ã§ãããæ®µéã«ãªãã¨ãããã®éããæèããªãã¨ãããªãã
Altera FPGAã®å ´åãæ¬æ ¼çãªã·ãã¥ã¬ã¼ã¿ã¼ã¨ãã¦ModelSimãç¡åã§æä¾ããã¦ããããã®ModelSimã®ä½¿ãæ¹ããã®æ¬ã§åå¼·ããã

å³è§£ ModelSimå®ç¿ ã¼ãããããããã£ã¸ã¿ã«åè·¯ã·ãã¥ã¬ã¼ã·ã§ã³
- ä½è : å æ¡å¤ªé
- åºç社/ã¡ã¼ã«ã¼: 森ååºç
- çºå£²æ¥: 2005/03/20
- ã¡ãã£ã¢: åè¡æ¬
- è³¼å ¥: 1人 ã¯ãªãã¯: 19å
- ãã®ååãå«ãããã° (5ä»¶) ãè¦ã
ModelSimã使ãå§ãã¦æ°ã¥ãããã©ãã·ãã¥ã¬ã¼ã¿ã¼ã§HDLãæ¸ããã»ããQuartusä¸ã§ç´æ¥ã³ã¼ãã£ã³ã°ãããããã³ã³ãã¤ã«ãå ¨ç¶éãã¦çç£å¹çãã¾ãã£ããéããããã«ãå¶ç´ã®å¤ãSignalTapã«ç¸ããããã¨ãªãããã¹ã¦ã®ä¿¡å·ã®ç¶æ ãã¿ã¤ãã³ã°ã»ãã£ã¼ãä¸ã§çºãã¤ã¤ãããã°ã§ãããã·ãã¥ã¬ã¼ã¿ã¼ã§ããããã®ãã°ãåã£ã¦ããã°ã宿©ã®ã¿ã§åºããã°ã¯ãã¾ãå¤ããªããModelSimã¾ãããããããã以éããã¼ãè¨è¨ã®æéã®8å²ã¯ModelSimä¸ã§ã®ã³ã¼ãã£ã³ã°ï¼ãããã°ä½æ¥ã«ãªã£ããé£è¡æ©ä¹ã£ã¦ã¦æ»ã¬ã»ã©ãããªæã¨ãã«ãHDLæ¸ãããã²ã¨éãæ¸ããããæå¾ã«Quartusã§ãã«ããã¦å®æ©ãã¹ãï¼ãããã°ããã¨ããæµãã

ModelSimã§ã·ãã¥ã¬ã¼ã·ã§ã³ãã¦ãã¨ãã
ããã²ã¨ã¤é¿ãã¦éããªãã®ããæ¤è¨¼ææ³ã®ãåå¼·ããã¼ãéçºã®ä¸çã¯ããã¹ããã¡ã¼ã¹ãã©ããããéçºã³ã¹ãã®7ã8å²ãæ¤è¨¼ã«è²»ããããããããå¾¹åºããæ¤è¨¼ä½æ¥ãå°æ¥ã¨ããæ¤è¨¼ã¨ã³ã¸ãã¢ã®æ¹ãã¨ã£ã¦ãå¤ããã¡ãã£ã¨ãã°ãã¨æ°ååãé£ãã§ãã¾ãASICã¨ã¯éããFPGAã§ã¯ãã®å ´ã§ã©ãã©ããã°ãç´ããã®ã ãã©ãããã§ããã¼ãã¦ã§ã¢ã¯ã½ããã¦ã§ã¢ãããã±ã¿éãã«ä¸¦åæ§ãé«ããã©ãã ããããããªãã¿ã¼ã³ã¨çµã¿åããã§ãã¹ããã¦ãå®å ¨ãªãã°ã®æ´ãåºãã¯é£ãããã§ãããå ¥éç¨ã®ããç°¡åãªHDLãæ¸ãã¦ã¦ããæ¤è¨¼ã³ã¼ããã²ã¨ã¨ããæ¸ãã¦ãã¹ããéãã¦ãããªãã¨ããªãã ãã¾ã£ããã³ã¼ããæ¸ããæ°ãããªãã®ã ã
ãããããã¼ãã¦ã§ã¢è¨è¨ã§ã®æ¤è¨¼ã®åºæ¬ã¯ããã®æ¬ã§åå¼·ããã

Verilog HDL&VHDLãã¹ããã³ãè¨è¿°ã®åæ© (DESIGN WAVE MOOK)
- ä½è : å®å²¡è²´å¿
- åºç社/ã¡ã¼ã«ã¼: CQåºç
- çºå£²æ¥: 2011/03/30
- ã¡ãã£ã¢: åè¡æ¬
- è³¼å ¥: 1人 ã¯ãªãã¯: 3å
- ãã®ååãå«ãããã° (1ä»¶) ãè¦ã
æ¤è¨¼ã®ããããåå¼·ããã¨ãVerilog HDLã®æ§æã®ããªãã®å²åããã¹ããæ¸ãããã«ãããã ãªãã¨åãã£ã¦ããããã£ã¨ããä»åã®CPUã§ã¯åã ã®å½ä»¤å®è¡ã®æ¤è¨¼ãHDLã§è¨è¿°ãã¦ãã¨ãã®ãããæéããããã®ã§ã代ããã«åå½ä»¤ãå®è¡ãã¦ãã®å¾ã®ã¬ã¸ã¹ã¿ç¶æ ããã§ãã¯ãããã¹ãã±ã¼ã¹ãMIPSã¢ã»ã³ãã©ã§æ¸ããããã£ã¨éãã§æµãç¨åº¦ã§ãããCPUã®æ¤è¨¼ãä»äºã§ãã¡ã£ã¨ããã®ã¯ãã®ããã大å¤ããã ãã
ã·ãã¥ã¬ã¼ã·ã§ã³ç¨è¨èªã¨ãã¦ã®Verilog HDLã®ä½¿ãæ¹ãããã¦ã·ãã¥ã¬ã¼ã¿ã¼ããããã©ãè§£éãã¦å®è¡ãããã®è©³ç´°ã«ã¤ãã¦ã¯ããã¾ãããæ¥æ¬èªã®æ¬ããªããããªã®ã ãã©ãYouTubeã«ããVerilog Lectureã·ãªã¼ãºã®ãããªã§ä¸å¯§ã«è§£èª¬ããã¦ãããè±èªã ãã©ããªã¹ãã³ã°ææã¨ãã¦ãã¡ããã©ããã¨æãã
ãã ãããã®ãããªã®å¾åã«åºã¦ããã¿ã¤ãã³ã°æ¤è¨¼ç¨ã®ããã¤ãã®æ§æã¯ãä»ã®FPGAéçºã§ã¯ã»ã¨ãã©ä½¿ããã¦ãªããããã
ããã¨ãHDLã®æ¸ãæ¹ã«é¢ãã¦æè¿ãããããããã®ã¯ãã®æ¬ã

- ä½è : å°æåª,hdLabéçºã°ã«ã¼ã
- åºç社/ã¡ã¼ã«ã¼: CQåºç
- çºå£²æ¥: 2009/05
- ã¡ãã£ã¢: åè¡æ¬
- è³¼å ¥: 1人 ã¯ãªãã¯: 1å
- ãã®ååãå«ãããã° (2ä»¶) ãè¦ã
Verilog HDLã¯ã·ã³ã¿ãã¯ã¹ããããã®ã§ããã¡ãã¨ããã³ã¼ããæ¸ãã«ã¯ä¸å®ã®ãã©ã¯ãã£ã¹ãã³ã¼ãã£ã³ã°ã¹ã¿ã¤ã«ã«æ·»ã£ã¦æ¸ããã¨ãéè¦ããã¨çããã«ããè¨ãããããã®æ¬ã¯ãã®ããããç¶²ç¾
ããæ¬ã¨ãã¦natsutanããã«ç´¹ä»ãã¦ããã ããã®ã§ããã£ããèªãã§ã¿ããã
ããããMIPSãæ¸ã
ãããªæãã®ãã¼ãè¨è¨ä¿®è¡ãã ãã ãã¨ããã¤ã¤ãä»å¹´ã®æ£æä¼ã¿ããããããæ¬æ ¼çã«32bit CPUãæ¸ãå§ãããããã§ããç¥ããããã´ããæ¬ã®åå¨ã«ãã£ã¦ãã£ããå©ãããããçãããåç¥ã®ãã¿ããããã§ã¯ãªãããã®æ¬ã§ããã

- ä½è : David Money Harris,Sarah L. Harris,é´æ¨è²¢,天éè±æ´,䏿¢æä¼¯,æ°¸æ¾ç¤¼å¤«
- åºç社/ã¡ã¼ã«ã¼: ç¿æ³³ç¤¾
- çºå£²æ¥: 2009/08/04
- ã¡ãã£ã¢: 大忬
- è³¼å ¥: 3人 ã¯ãªãã¯: 33å
- ãã®ååãå«ãããã° (12ä»¶) ãè¦ã
ç¾ä»£ã®ã³ã³ãã¥ã¼ã¿ã¼ã»ã¢ã¼ããã¯ãã£ã®æç§æ¸ã¨ããã°ãã¿ã¼ã½ã³ï¼ããã·ã¼ã§ããããä¸è¨ã®æ¬ã¯ãã¿ããããã£ã¨ãã£ã¨åããããããã¦ããããå®éã«åãCPUãä½ãããã«å¿ è¦ã«ãªããããªé åãã²ã¨ã¨ããç¶²ç¾ ãã¦ã¦ããã¤HDLã«ããå®è£ ä¾ã¾ã§è¼ãã¦ããã¦ãããè³ããå°½ãããã®æ¬ã ãこの本をブログで紹介されていたnatsutanさんã«æ¹ãã¦æè¬ããããèªã¿ãªããèªåã§HDLãæ¸ãã¦MIPSå½ä»¤ãä¸åã¥ã¤å®è£ ãã¦ããããã®å½ä»¤ã£ã¦ã©ããã£ã¦å®è£ ããã®ï¼ãã¨ã¤ã¾ã¥ããããã®æ¬ãèªã¿ç´ãã¦ããã¨ããæ£æãéãããã
ãã¡ãããæç§æ¸ã§ãããã¿ããããã²æå ã«ç½®ãã¦ããããã

- ä½è : ãã¤ãããã»Aã»ãã¿ã¼ã½ã³,ã¸ã§ã³ã»Lã»ããã·ã¼,æç°å å½°
- åºç社/ã¡ã¼ã«ã¼: æ¥çµBP社
- çºå£²æ¥: 2011/11/17
- ã¡ãã£ã¢: åè¡æ¬
- è³¼å ¥: 7人 ã¯ãªãã¯: 19å
- ãã®ååãå«ãããã° (8ä»¶) ãè¦ã

- ä½è : ãã¤ãããã»Aã»ãã¿ã¼ã½ã³,ã¸ã§ã³ã»Lã»ããã·ã¼,æç°å å½°
- åºç社/ã¡ã¼ã«ã¼: æ¥çµBP社
- çºå£²æ¥: 2011/11/17
- ã¡ãã£ã¢: åè¡æ¬
- è³¼å ¥: 5人 ã¯ãªãã¯: 14å
- ãã®ååãå«ãããã° (8ä»¶) ãè¦ã
ãã¿ãããè²·ã£ãã®ã¯10å¹´ã15年以ä¸åã®ãã¨ã§ãæ¬æ£ã§æ°¸å«ã®ç ãã«ã¤ãã¦ããã®ã ãã©ãã¾ããä»ã«ãªã£ã¦ãã®ãã¿ãããããµãã¨èªçãã¦é»è»ã®ä¸ã®iPadã§ç¹°ãè¿ãèªããã¨ã«ãªããã¨ã¯ãæ¬ã¨ã®é¢ããã¨ã¯ä¸æè°ãªãã®ã ã
å®ã¯MIPSãä½ãå§ããåã«ãARMã®æ¹ããã¾ã©ãã£ã½ããªãï¼ãã¨æã£ã¦ARMã®ã¢ã¼ããã¯ãã£ã調ã¹ã¦ãã®ã ãã©ããªããªãã«è¤éãªé¨åï¼å½ä»¤ã¨ã³ã³ã¼ãã£ã³ã°ã¨ãï¼ããã£ããåæã¢ã¼ããã¯ãã£ã«åºã¥ãæç§æ¸ãè³æã®è±å¯ãã§ã¯MIPSã«ããªããªãã®ã§ãæå¿µãã¦ãªã¼ã½ããã¯ã¹ãªMIPSã§è¡ããã¨ã«ãããã§ãã以ä¸ã®ARMæ¬ã¯ARMã¢ã¼ããã¯ãã£ãç¥ãä¸ã§ã¨ã¦ãåèã«ãªã£ãã

ARMã§å¦ã¶ ã¢ã»ã³ããªè¨èªå ¥é
- ä½è : åºææå
- åºç社/ã¡ã¼ã«ã¼: ã·ã¼ã¢ã³ãã¢ã¼ã«ç ç©¶æ
- çºå£²æ¥: 2013/06/22
- ã¡ãã£ã¢: åè¡æ¬ï¼ã½ããã«ãã¼ï¼
- ãã®ååãå«ãããã° (5ä»¶) ãè¦ã
èªåã§å®è£ ãã¦ã¿ãã¨ãMIPSã®å½ä»¤ã»ãããå½ä»¤ã¨ã³ã³ã¼ãã£ã³ã°ããã®ã¾ãã¾ç´ ç´ã«åè·¯è¨è¨ã«è½ã¨ããããã«ãªã£ã¦ãã¨ãããçµæ§æåããããªã¼ãã»ã©ãã³ã¬ã¯ãããã©ã¯ã«ãªãããããããè¨è¨ã«ãªã£ã¦ããã ããã¨ããæãã§ã
// arithmetic operations
always_comb begin
case (cpath[`CP_ALU_CTRL])
`R_sll: result = rt_or_imm << inst[`I_SHFT];
`R_srl: result = rt_or_imm >> inst[`I_SHFT];
`R_sra: result = $signed(rt_or_imm) >>> inst[`I_SHFT];
`R_sllv: result = rt_or_imm << rs[4:0];
`R_srlv: result = rt_or_imm >> rs[4:0];
`R_srav: result = $signed(rt_or_imm) >>> rs[4:0];
`R_jr: result = {rs, 32'b0 }; // jump to [rs]
`R_jalr: result = {rs, (pc + 32'd8) }; // jump to [rs], $ra = PC + 8 (incl. delay slot)
`R_mfhi: result = hilo_q[63:32];
`R_mthi: result = {rs, hilo_q[31:0]};
...ALUã¾ããã®HDLã³ã¼ã
䏿¹ã§ãã¾ã ãã¤ãã©ã¤ã³å®è£ ã¾ã§ã¯ãã©ãçãã¦ãªãããä¾å¤ï¼ã·ã¹ãã ã³ã¼ã«ããã©ããï¼ããã£ãã·ã¥ããã¹ãMMUã¨ãã£ãç¾ä»£ã®CPUã«ä¸å¯æ¬ ãªã³ã³ãã¼ãã³ãã¯ã©ããå®è£ ã§ãã¦ããªããã§ããæ°ãããªãã®ã§ããããä»äºã§è¨è¨ãã¦ããããã£ã¡ãæ¤è¨¼ããã¦ããæ¹ã ã¨ã®éã®è¶ ããããªãã«ããæ¹ãã¦èªèã
ã¡ãªã¿ã«ãããèªä½MIPSã§ä¾å¤ããã£ãã·ã¥ãMMUãªã©OSã«ã¼ãã«ã¨ã®ããã¨ãã®ãããããã£ã¡ãå®è£ ãããã£ããããã®æ¬ããããªãç¥æ¬ã¨ãªãã§ãããã

See MIPS Run (The Morgan Kaufmann Series in Computer Architecture and Design)
- ä½è : Dominic Sweetman
- åºç社/ã¡ã¼ã«ã¼: Morgan Kaufmann
- çºå£²æ¥: 2010/07/08
- ã¡ãã£ã¢: Kindleç
- ãã®ååãå«ãããã° (1ä»¶) ãè¦ã
MIPSã¨Linuxã«ã¼ãã«ã¨ã®éã®ãã¾ã¼ä½ã¬ãã«ãããã¨ãã®è©³ç´°ã話ã解説ããæ¬ã ããããã俺ã®åéã§ã¯ãã®é åã«ã¯éããªãã ãããªããã
MIPS GNUãã¼ã«ãã§ã¤ã³ããã¼ãï¼ã½ãã飿ºãSoC
ãã®ä»ãä»åã¯MIPSçã®GNUãã¼ã«ãã§ã¤ã³ã使ã£ã¦Cã³ã¼ãããã¢ã»ã³ãã©ãçæãããã¦ELFãã¡ã¤ã«ãããã¤ããªãå¼ã£å¼µã£ã¦ãã¦MIPSç¨ãã·ã³ã³ã¼ããçæããã®ã§ããã¤ããªã¾ããã®ãã¼ã«ã®ä½¿ãæ¹ã以ä¸ã®æ¬ã§ãåå¼·ããã

Binary Hacks âããã«ã¼ç§ä¼ã®ãã¯ããã¯100é¸
- ä½è : 髿å²,éµé£¼ææ,ä½è¤ç¥ä»,æµå°æ ä¸é,é¦è¤ä¸å¹¸
- åºç社/ã¡ã¼ã«ã¼: ãªã©ã¤ãªã¼ã»ã¸ã£ãã³
- çºå£²æ¥: 2006/11/14
- ã¡ãã£ã¢: åè¡æ¬ï¼ã½ããã«ãã¼ï¼
- è³¼å ¥: 23人 ã¯ãªãã¯: 383å
- ãã®ååãå«ãããã° (223ä»¶) ãè¦ã
ãã®èè ã®æ¹ã ã®ãååã¯ã©ããã§è¦ããã¨ãããæ°ããããããobjdumpãreadelfçã®ãã¤ããªãããã®ããã®ãã¼ã«ã¯ããã¾ã§ã¾ã£ãã触ããæ©ä¼ããªãã£ãããELFãã¡ã¤ã«ã®æ§æãã¢ã»ã³ãã©ã®ãã¯ãã®æå³ã颿°å¼ã³åºãæã®ã¬ã¸ã¹ã¿ã®ä½¿ãæ¹ãã¹ã¿ãã¯ãã¤ã³ã¿ããã¬ã¼ã ãã¤ã³ã¿ã®åãã¨ãããããæ©ã«ããããå¦ã¹ãã
ããã¦ä»å¾ã¯ãCPUä¸ã®ã½ããã¦ã§ã¢ã¨FPGAä¸ã®ãã¼ãéã®é£æºææ³ããåå¼·ãã¦ãããããããããSoC (System on Chip)ã®ä¸çã§ã¯ã©ããªæãã§ã·ã¹ãã ãè¨è¨ããã®ã詳細ã«è§£èª¬ãã¦ãã®ã¯ãæ å ããã®ãã®æ¬ã

- ä½è : æ å æ²ä¸
- åºç社/ã¡ã¼ã«ã¼: CQåºç
- çºå£²æ¥: 2013/04/01
- ã¡ãã£ã¢: åè¡æ¬
- ãã®ååãå«ãããã° (2ä»¶) ãè¦ã
CPUã§åãã½ããã¦ã§ã¢ã¨FPGAã§åããã¼ãã¦ã§ã¢ã®ä¸¡æ¹ãèªä½ãã¦ããããããã¹ã§ã¤ãªãã§SoCãæ§æããããã¨ããæã ãç®æãã¹ãä¸çã®è©³ç´°ãè¨ããã¦ããã®ã ãã©ãä»ã®ä¿ºã®ã¬ãã«ã§ã¯ã¾ã æãå±ãã¦ããªãã
ããã¨ããä¸åãAlteraã®ãã¹ã¾ãããåå¼·ããããã«FPGA技術のVol. 5ã®ãããµãããã®é£è¼ãã¨ã£ã¦ãèªãã§ã¿ãããã®ã®ãæ®å¿µãªããå¨åº«åãããã¨ããããVol. 6ã¯å
¥æããã®ã§ããããèªãã¨ããã
CPUèªä½ã¯ããããã
ã¨ããããã§ãæ¯ãè¿ãã¨ãªããªãã«å¯åº¦ã®æ¿ããåå¼·ã³ã¼ã¹ã§ãã£ããéä¸ãé·ãæ¾ç½®æéããã£ãã®ã§ãå®è³ªããã£ãæéã¯é±æ«Ã3ã4ãæãããã ããããã½ããã¦ã§ã¢ã»ã¨ã³ã¸ãã¢ã®CPUèªä½ã¯æ¥½ãããªã¼ã¨ãã話ãFPGAã«èå³ã®ããã½ããå±ããã¯3/10のFPGAエクストリーム・コンピューティング第5回ã«æ¥ãã¨ãããï¼

