Knowledge

Chisel (programming language)

Source 📝

27: 847:
Derek Lockhart, Stephen Twigg, Ravi Narayanaswami, Jeremy Coriell, Uday Dasari, Richard Ho, Doug Hogberg, George Huang, Anand Kane, Chintan Kaur, Tao Liu, Adriana Maggiore, Kevin Townsend, Emre Tuncer (2018-11-16).
579:
Although Chisel is not yet a mainstream hardware description language, it has been explored by several companies and institutions. The most prominent use of Chisel is an implementation of the
269:
aspects of Scala for describing digital hardware. Using Scala as a basis allows describing circuit generators. High quality, free access documentation exists in several languages.
826: 1527: 971: 1517: 1522: 994: 871: 703: 687: 1172: 1142: 671: 39: 771: 711: 77: 1016: 964: 1157: 818: 1083: 1004: 737: 239: 944: 254: 172: 65: 1197: 957: 262: 106: 55: 583:
instruction set, the open-source Rocket chip. Chisel is mentioned by the Defense Advanced Research Projects Agency (
662:
Bachrach, J.; Vo, H.; Richards, B.; Lee, Y.; Waterman, A.; Avižienis, R.; Wawrzynek, J.; Asanović, K. (June 2012).
1021: 980: 587:) as a technology to improve the efficiency of electronic design, where smaller design teams do larger designs. 1439: 1177: 1063: 1046: 1031: 1026: 599:. Some developers prefer Chisel as it requires 5 times lesser code and is much faster to develop than Verilog. 258: 161: 156: 1416: 247: 1357: 1243: 592: 266: 149: 145: 51: 47: 43: 1367: 1258: 1248: 1073: 1431: 1378: 1263: 1162: 1068: 184: 34: 1476: 1332: 1058: 1036: 715: 293: 243: 26: 1352: 1268: 179: 72: 1283: 1130: 787: 767: 683: 1152: 999: 675: 615: 611: 281: 1386: 766:(in English, Chinese, Japanese, and Vietnamese) (2nd ed.). Kindle Direct Publishing. 607: 277: 1488: 596: 137: 872:"XiangShan open-source 64-bit RISC-V processor to rival Arm Cortex-A76 - CNX Software" 1511: 1459: 1444: 1316: 1238: 1125: 663: 642: 141: 1401: 1391: 1041: 297: 1187: 1101: 1009: 761: 531: 132: 937: 1406: 1337: 1306: 1118: 849: 189: 1471: 1466: 1449: 1411: 1218: 1096: 679: 928: 1454: 1347: 1278: 1223: 1182: 1147: 1113: 791: 1421: 1311: 1273: 1137: 1091: 637: 632: 603: 273: 231: 668:
Proceedings of the 49th Annual Design Automation Conference (DAC 2012)
1483: 1342: 1167: 1051: 949: 932: 745: 588: 580: 1253: 1233: 1192: 602:
Circuits described in Chisel can be converted to a description in
584: 296:
circuit and showing the organization of components in Module with
272:
Circuits described in Chisel can be converted to a description in
1396: 1108: 627: 198: 953: 896: 1228: 921: 214: 664:"Chisel: constructing hardware in a Scala embedded language" 20:
Constructing Hardware in a Scala Embedded Language (Chisel)
202: 193: 1430: 1377: 1366: 1325: 1299: 1292: 1211: 1082: 987: 209: 178: 168: 155: 131: 105: 83: 71: 61: 33: 236:Constructing Hardware in a Scala Embedded Language 827:Institute of Electrical and Electronics Engineers 819:"DARPA Plans a Major Remake of U.S. Electronics" 16:Open-source hardware description language (HDL) 965: 8: 19: 897:"Chisel/FIRRTL Hardware Compiler Framework" 484:A 32-bit register with a reset value of 0: 1374: 1296: 972: 958: 950: 18: 851:Experiences Building Edge TPU with Chisel 749:. California, U.S.: RISC-V International. 654: 738:"Chisel: Accelerating Hardware Design" 760:Schoeberl, Martin (August 30, 2019). 7: 1528:Science and technology in California 876:CNX Software - Embedded Systems News 672:Association for Computing Machinery 1518:University of California, Berkeley 712:University of California, Berkeley 78:University of California, Berkeley 14: 670:. San Francisco, California, US: 25: 817:Moore, Samuel K. (2018-07-16). 534:is part of the Chisel library: 292:A simple example describing an 1523:Hardware description languages 112:3.6.0 / April 14, 2023 1: 591:has used Chisel to develop a 240:hardware description language 261:(DSL). Chisel inherits the 89:; 12 years ago 1544: 763:Digital Design with Chisel 736:Bachrach, Jonathan (ed.). 674:(ACM). pp. 1216–25. 127: 101: 24: 1064:Circuit underutilization 1047:Reconfigurable computing 708:people.eecs.berkeley.edu 536: 486: 302: 259:domain-specific language 680:10.1145/2228360.2228584 248:register-transfer level 242:(HDL) used to describe 169:Implementation language 114:; 17 months ago 798:. RISC-V International 614:using a program named 593:Tensor Processing Unit 267:functional programming 1074:Hardware acceleration 1264:Microchip Technology 1069:High-level synthesis 710:. California, U.S.: 246:and circuits at the 238:) is an open-source 185:Java virtual machine 1333:Intel Quartus Prime 1059:Soft microprocessor 253:Chisel is based on 244:digital electronics 84:First appeared 21: 981:Programmable logic 1505: 1504: 1501: 1500: 1497: 1496: 1284:Texas Instruments 689:978-1-4503-1199-1 225: 224: 133:Typing discipline 1535: 1375: 1297: 974: 967: 960: 951: 940: 925: 924: 922:Official website 907: 906: 904: 903: 893: 887: 886: 884: 883: 868: 862: 861: 859: 858: 844: 838: 837: 835: 834: 814: 808: 807: 805: 803: 784: 778: 777: 757: 751: 750: 742: 733: 727: 726: 724: 723: 714:. Archived from 700: 694: 693: 659: 570: 567: 564: 561: 558: 555: 552: 549: 546: 543: 540: 526: 523: 520: 517: 514: 511: 508: 505: 502: 499: 496: 493: 490: 480: 477: 474: 471: 468: 465: 462: 459: 456: 453: 450: 447: 444: 441: 438: 435: 432: 429: 426: 423: 420: 417: 414: 411: 408: 405: 402: 399: 396: 393: 390: 387: 384: 381: 378: 375: 372: 369: 366: 363: 360: 357: 354: 351: 348: 345: 342: 339: 336: 333: 330: 327: 324: 321: 318: 315: 312: 309: 306: 298:input and output 221: 218: 216: 205:) (experimental) 122: 120: 115: 97: 95: 90: 29: 22: 1543: 1542: 1538: 1537: 1536: 1534: 1533: 1532: 1508: 1507: 1506: 1493: 1426: 1369: 1362: 1321: 1288: 1207: 1078: 983: 978: 938: 920: 919: 916: 911: 910: 901: 899: 895: 894: 890: 881: 879: 870: 869: 865: 856: 854: 846: 845: 841: 832: 830: 816: 815: 811: 801: 799: 788:Asanović, Krste 786: 785: 781: 774: 759: 758: 754: 740: 735: 734: 730: 721: 719: 702: 701: 697: 690: 661: 660: 656: 651: 624: 577: 572: 571: 568: 565: 562: 559: 556: 553: 550: 547: 544: 541: 538: 528: 527: 524: 521: 518: 515: 512: 509: 506: 503: 500: 497: 494: 491: 488: 482: 481: 478: 475: 472: 469: 466: 463: 460: 457: 454: 451: 448: 445: 442: 439: 436: 433: 430: 427: 424: 421: 418: 415: 412: 409: 406: 403: 400: 397: 394: 391: 388: 385: 382: 379: 376: 373: 370: 367: 364: 361: 358: 355: 352: 349: 346: 343: 340: 337: 334: 331: 328: 325: 322: 319: 316: 313: 310: 307: 304: 290: 263:object-oriented 213: 197: 188: 123: 118: 116: 113: 93: 91: 88: 56:object-oriented 17: 12: 11: 5: 1541: 1539: 1531: 1530: 1525: 1520: 1510: 1509: 1503: 1502: 1499: 1498: 1495: 1494: 1492: 1491: 1486: 1481: 1480: 1479: 1474: 1464: 1463: 1462: 1452: 1447: 1442: 1436: 1434: 1428: 1427: 1425: 1424: 1419: 1414: 1409: 1404: 1399: 1394: 1389: 1383: 1381: 1372: 1364: 1363: 1361: 1360: 1355: 1350: 1345: 1340: 1335: 1329: 1327: 1323: 1322: 1320: 1319: 1314: 1309: 1303: 1301: 1294: 1290: 1289: 1287: 1286: 1281: 1276: 1271: 1266: 1261: 1256: 1251: 1246: 1241: 1236: 1231: 1226: 1221: 1215: 1213: 1209: 1208: 1206: 1205: 1200: 1195: 1190: 1185: 1180: 1175: 1170: 1165: 1160: 1155: 1150: 1145: 1140: 1135: 1134: 1133: 1123: 1122: 1121: 1116: 1106: 1105: 1104: 1099: 1088: 1086: 1080: 1079: 1077: 1076: 1071: 1066: 1061: 1056: 1055: 1054: 1044: 1039: 1034: 1029: 1024: 1019: 1014: 1013: 1012: 1002: 997: 991: 989: 985: 984: 979: 977: 976: 969: 962: 954: 948: 947: 935: 926: 915: 914:External links 912: 909: 908: 888: 863: 839: 809: 790:; et al. 779: 773:978-1689336031 772: 752: 728: 695: 688: 653: 652: 650: 647: 646: 645: 640: 635: 630: 623: 620: 597:edge computing 576: 573: 537: 487: 303: 289: 286: 223: 222: 211: 207: 206: 182: 176: 175: 170: 166: 165: 159: 153: 152: 135: 129: 128: 125: 124: 111: 109: 107:Stable release 103: 102: 99: 98: 87:June 2012 85: 81: 80: 75: 69: 68: 63: 59: 58: 40:Multi-paradigm 37: 31: 30: 15: 13: 10: 9: 6: 4: 3: 2: 1540: 1529: 1526: 1524: 1521: 1519: 1516: 1515: 1513: 1490: 1487: 1485: 1482: 1478: 1475: 1473: 1470: 1469: 1468: 1465: 1461: 1458: 1457: 1456: 1453: 1451: 1448: 1446: 1445:LatticeMico32 1443: 1441: 1438: 1437: 1435: 1433: 1429: 1423: 1420: 1418: 1415: 1413: 1410: 1408: 1405: 1403: 1400: 1398: 1395: 1393: 1390: 1388: 1385: 1384: 1382: 1380: 1376: 1373: 1371: 1365: 1359: 1356: 1354: 1351: 1349: 1346: 1344: 1341: 1339: 1336: 1334: 1331: 1330: 1328: 1324: 1318: 1315: 1313: 1310: 1308: 1305: 1304: 1302: 1298: 1295: 1291: 1285: 1282: 1280: 1277: 1275: 1272: 1270: 1267: 1265: 1262: 1260: 1257: 1255: 1252: 1250: 1247: 1245: 1242: 1240: 1237: 1235: 1232: 1230: 1227: 1225: 1222: 1220: 1217: 1216: 1214: 1210: 1204: 1201: 1199: 1196: 1194: 1191: 1189: 1186: 1184: 1181: 1179: 1176: 1174: 1171: 1169: 1166: 1164: 1161: 1159: 1156: 1154: 1151: 1149: 1146: 1144: 1141: 1139: 1136: 1132: 1129: 1128: 1127: 1126:SystemVerilog 1124: 1120: 1117: 1115: 1112: 1111: 1110: 1107: 1103: 1100: 1098: 1095: 1094: 1093: 1090: 1089: 1087: 1085: 1081: 1075: 1072: 1070: 1067: 1065: 1062: 1060: 1057: 1053: 1050: 1049: 1048: 1045: 1043: 1040: 1038: 1035: 1033: 1030: 1028: 1025: 1023: 1020: 1018: 1015: 1011: 1008: 1007: 1006: 1003: 1001: 998: 996: 993: 992: 990: 986: 982: 975: 970: 968: 963: 961: 956: 955: 952: 946: 942: 936: 934: 930: 927: 923: 918: 917: 913: 898: 892: 889: 877: 873: 867: 864: 853: 852: 843: 840: 828: 824: 823:IEEE Spectrum 820: 813: 810: 797: 793: 792:"rocket-chip" 789: 783: 780: 775: 769: 765: 764: 756: 753: 748: 747: 739: 732: 729: 718:on 2021-10-16 717: 713: 709: 705: 699: 696: 691: 685: 681: 677: 673: 669: 665: 658: 655: 648: 644: 643:SystemVerilog 641: 639: 636: 634: 631: 629: 626: 625: 621: 619: 617: 613: 609: 605: 600: 598: 594: 590: 586: 582: 574: 535: 533: 485: 301: 299: 295: 288:Code examples 287: 285: 283: 279: 275: 270: 268: 264: 260: 256: 251: 249: 245: 241: 237: 233: 229: 220: 212: 208: 204: 200: 195: 191: 186: 183: 181: 177: 174: 171: 167: 163: 160: 158: 154: 151: 147: 143: 139: 136: 134: 130: 126: 110: 108: 104: 100: 86: 82: 79: 76: 74: 70: 67: 64: 60: 57: 53: 49: 45: 41: 38: 36: 32: 28: 23: 1402:LatticeMico8 1392:ARM Cortex-M 1368:Intellectual 1202: 900:. Retrieved 891: 880:. Retrieved 878:. 2021-07-05 875: 866: 855:. Retrieved 850: 842: 831:. Retrieved 822: 812: 800:. Retrieved 795: 782: 762: 755: 744: 731: 720:. Retrieved 716:the original 707: 698: 667: 657: 601: 578: 529: 483: 291: 271: 252: 235: 227: 226: 217:.chisel-lang 203:Scala Native 1432:Open-source 1379:Proprietary 1188:Flow to HDL 1010:Logic block 802:11 November 532:multiplexer 1512:Categories 1407:MicroBlaze 1358:Simulators 1338:Xilinx ISE 941:'s channel 902:2022-09-08 882:2022-03-26 857:2020-06-10 833:2020-06-10 722:2020-07-08 649:References 612:simulation 282:simulation 190:JavaScript 150:structural 119:2023-04-14 52:imperative 48:functional 44:concurrent 1477:Microwatt 1472:Libre-SOC 1467:Power ISA 1450:OpenCores 1412:PicoBlaze 1219:Accellera 1212:Companies 1084:Languages 608:synthesis 278:synthesis 73:Developer 35:Paradigms 1455:OpenRISC 1370:property 1348:ModelSim 1326:Software 1300:Hardware 1293:Products 1279:Synopsys 1249:Infineon 1224:Achronix 1183:C to HDL 1148:Handel-C 988:Concepts 929:Chisel 3 704:"Chisel" 622:See also 194:Scala.js 180:Platform 164:(static) 138:Inferred 1422:Nios II 1312:Stratix 1274:Siemens 1259:Lattice 1244:Cadence 1138:SystemC 1092:Verilog 945:YouTube 638:SystemC 633:Verilog 604:Verilog 498:RegInit 311:extends 300:ports: 274:Verilog 232:acronym 210:Website 162:Lexical 117: ( 94:2012-06 92: ( 1484:RISC-V 1343:Vivado 1317:Virtex 1203:Chisel 1168:PALASM 1052:Xputer 939:Chisel 933:GitHub 829:(IEEE) 796:GitHub 770:  746:RISC-V 686:  616:FIRRTL 589:Google 581:RISC-V 542:result 419:Output 338:Bundle 314:Module 228:Chisel 146:strong 142:static 62:Family 1254:Intel 1234:Aldec 1193:MyHDL 1119:VITAL 741:(PDF) 585:DARPA 386:Input 353:Input 305:class 294:adder 257:as a 255:Scala 187:(JVM) 173:Scala 157:Scope 66:Scala 1460:1200 1417:Nios 1397:LEON 1198:ELLA 1178:CUPL 1173:ABEL 1153:Lola 1143:AHDL 1109:VHDL 1042:PSoC 1022:EPLD 1017:CPLD 1005:FPGA 995:ASIC 804:2016 768:ISBN 684:ISBN 628:VHDL 610:and 606:for 595:for 425:UInt 392:UInt 359:UInt 280:and 276:for 265:and 234:for 230:(an 219:.org 199:LLVM 1489:Zet 1440:JOP 1387:ARC 1353:VTR 1307:iCE 1269:NXP 1239:Arm 1229:AMD 1163:UPF 1158:PSL 1131:DPI 1114:AMS 1102:AMS 1037:GAL 1032:PAL 1027:PLA 1000:SoC 943:on 931:on 676:doi 575:Use 554:sel 548:Mux 539:val 492:reg 489:val 410:val 377:val 344:val 335:new 320:val 308:Add 215:www 1514:: 874:. 825:. 821:. 794:. 743:. 706:. 682:. 666:. 618:. 530:A 525:)) 516:32 470:io 458:io 455::= 446:io 443:}) 440:)) 407:)) 374:)) 329:IO 323:io 284:. 250:. 148:, 144:, 140:, 54:, 50:, 46:, 42:: 1097:A 973:e 966:t 959:v 905:. 885:. 860:. 836:. 806:. 776:. 725:. 692:. 678:: 569:) 566:b 563:, 560:a 557:, 551:( 545:= 522:W 519:. 513:( 510:U 507:. 504:0 501:( 495:= 479:} 476:b 473:. 467:+ 464:a 461:. 452:y 449:. 437:W 434:. 431:8 428:( 422:( 416:= 413:y 404:W 401:. 398:8 395:( 389:( 383:= 380:b 371:W 368:. 365:8 362:( 356:( 350:= 347:a 341:{ 332:( 326:= 317:{ 201:( 196:) 192:( 121:) 96:)

Index


Paradigms
Multi-paradigm
concurrent
functional
imperative
object-oriented
Scala
Developer
University of California, Berkeley
Stable release
Typing discipline
Inferred
static
strong
structural
Scope
Lexical
Scala
Platform
Java virtual machine
JavaScript
Scala.js
LLVM
Scala Native
www.chisel-lang.org
acronym
hardware description language
digital electronics
register-transfer level

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.