PageSourceSearch

https://www.chisel-lang.org/assets/js/8fdf13ba.69a81755.js

js chisel-lang.org collected 2026-10-02 05:01:08 UTC 27,633 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkchisel_lang=globalThis.webpackChunkchisel_lang||[]).push([[1384],{8360(e,r,s){s.r(r),s.d(r,{assets:()=>M,contentTitle:()=>F,default:()=>O,frontMatter:()=>P,metadata:()=>t,toc:()=>E});const t=JSON.parse('{"id":"appendix/versioning","title":"Versioning","description":"Chisel follows Semantic Versioning 2.0.0.","source":"@site/docs/appendix/versioning.md","sourceDirName":"appendix","slug":"/appendix/versioning","permalink":"/docs/appendix/versioning","draft":false,"unlisted":false,"editUrl":"https://github.com/chipsalliance/chisel/tree/main/docs/src/appendix/versioning.md","tags":[],"version":"current","frontMatter":{"layout":"docs","title":"Versioning","section":"chisel3"},"sidebar":"chiselSidebar","previous":{"title":"Upgrading From Scala 2.11","permalink":"/docs/appendix/upgrading-from-scala-2-11"},"next":{"title":"Developer Documentation","permalink":"/docs/developers"}}');var i=s(4848),l=s(8453),n=s(6540),c=s(4164),h=s(7559),d=s(6347),o=s(205),a=s(7485),x=s(1682),j=s(679);function u(e){const{values:r,children:s}=e;return(0,n.useMemo)(()=>{const e=r??function(e){return n.Children.toArray(e).flatMap(e=>{if(!e)return[];if((0,n.isValidElement)(e)&&function(e){const{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return[e];const r="string"==typeof e.type?e.type:e.type.name;throw new Error(`Docusaurus error: Bad <Tabs> child <${r}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.\nIf you do not want to pass on a "value" prop to the direct children of <Tabs>, you can also pass an explicit <Tabs values={...}> prop.`)}).map(({props:{value:e,label:r,attributes:s,default:t}})=>({value:e,label:r,attributes:s,default:t}))}(s);return function(e){const r=(0,x.XI)(e,(e,r)=>e.value===r.value);if(r.length>0)throw new Error(`Docusaurus error: Duplicate values "${r.map(e=>`'${e.value}'`).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[r,s])}function m({value:e,tabValues:r}){return r.some(r=>r.value===e)}function f({queryString:e=!1,groupId:r}){const s=(0,d.W6)(),t=function({queryString:e=!1,groupId:r}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!r)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:e,groupId:r});return[(0,a.aZ)(t),(0,n.useCallback)(e=>{if(!t)return;const r=new URLSearchParams(s.location.search);r.set(t,e),s.replace({...s.location,search:r.toString()})},[t,s])]}function p(e){const{defaultValue:r,queryString:s=!1,groupId:t}=e,i=u(e),[l,c]=(0,n.useState)(()=>function({defaultValue:e,tabValues:r}){if(0===r.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!m({value:e,tabValues:r}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const s=r.find(e=>e.default)??r[0];if(!s)throw new Error("Unexpected error: 0 tabValues");return s.value}({defaultValue:r,tabValues:i})),[h,d]=f({queryString:s,groupId:t}),[a,x]=function({groupId:e}){const r=function(e){return e?`docusaurus.tab.${e}`:null}(e),[s,t]=(0,j.Dv)(r);return[s,(0,n.useCallback)(e=>{r&&t.set(e)},[r,t])]}({groupId:t}),p=(()=>{const e=h??a;return m({value:e,tabValues:i})?e:null})();(0,o.A)(()=>{p&&c(p)},[p]);return{selectedValue:l,selectValue:(0,n.useCallback)(e=>{if(!m({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);c(e),d(e),x(e)},[d,x,i]),tabValues:i,lazy:e.lazy??!1,block:e.block??!1}}const g=(0,n.createContext)(null);function b(){const e=n.useContext(g);if(!e)throw new Error("useTabsContext() must be used within a Tabs component");return e}function v(e){return(0,i.jsx)(g.Provider,{value:e.value,children:e.children})}var y=s(3104),C=s(2303);const w="tabList__CuJ",V="tabItem_LNqP";function T({className:e}){const{selectedValue:r,selectValue:s,tabValues:t,block:l}=b(),n=[],{blockElementScrollPositionUntilNextRender:h}=(0,y.a_)(),d=e=>{const i=e.currentTarget,l=n.indexOf(i),c=t[l].value;c!==r&&(h(i),s(c))},o=e=>{let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const s=n.indexOf(e.currentTarget)+1;r=n[s]??n[0];break}case"ArrowLeft":{const s=n.indexOf(e.currentTarget)-1;r=n[s]??n[n.length-1];break}}r?.focus()};return(0,i.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,
1c.A)("tabs",{"tabs--block":l},e),children:t.map(({value:e,label:s,attributes:t})=>(0,i.jsx)("li",{role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,ref:e=>{n.push(e)},onKeyDown:o,onClick:d,...t,className:(0,c.A)("tabs__item",V,t?.className,{"tabs__item--active":r===e}),children:s??e},e))})}function k({children:e}){return(0,i.jsx)("div",{className:"margin-top--md",children:e})}function A({className:e,children:r}){return(0,i.jsxs)("div",{className:(0,c.A)(h.G.tabs.container,"tabs-container",w),children:[(0,i.jsx)(T,{className:e}),(0,i.jsx)(k,{children:r})]})}function I(e){const r=(0,C.A)(),s=p(e);return(0,i.jsx)(v,{value:s,children:(0,i.jsx)(A,{className:e.className,children:(t=e.children,n.Children.toArray(t).filter(e=>"\n"!==e))})},String(r));var t}const R="tabItem_Ymn6";function S({children:e,className:r,hidden:s}){return(0,i.jsx)("div",{role:"tabpanel",className:(0,c.A)(R,r),hidden:s,children:e})}function N({children:e,className:r,value:s}){const{selectedValue:t,lazy:l}=b(),n=s===t;return!n&&l?null:(0,i.jsx)(S,{className:r,hidden:!n,children:e})}const P={layout:"docs",title:"Versioning",section:"chisel3"},F="Chisel Project Versioning",M={},E=[{value:"Firtool Version",id:"firtool-version",level:2},{value:"Setting Your Own Firtool Version",id:"setting-your-own-firtool-version",level:3},{value:"Firtool Version Tables",id:"firtool-version-tables",level:3},{value:"Old Chisel versions (3.0 - 3.6)",id:"old-chisel-versions-30---36",level:2},{value:"Compatible Versions (Chisel 3.0 - 3.6)",id:"compatible-versions-chisel-30---36",level:3}];function D(e){const r={a:"a",admonition:"admonition",br:"br",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components},{Details:s}=r;return s||function(e,r){throw new Error("Expected "+(r?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.header,{children:(0,i.jsx)(r.h1,{id:"chisel-project-versioning",children:"Chisel Project Versioning"})}),"\n",(0,i.jsxs)(r.p,{children:["Chisel follows ",(0,i.jsx)(r.a,{href:"https://semver.org",children:"Semantic Versioning 2.0.0"}),".\nProject versions are of the form ",(0,i.jsx)(r.code,{children:"MAJOR.MINOR.PATCH"}),".\nAn incremented ",(0,i.jsx)(r.code,{children:"MAJOR"})," version means there may be backwards incompatible changes (typically after an appropriate deprecation schedule).\nAn incremented ",(0,i.jsx)(r.code,{children:"MINOR"})," version means there are changes in functionality (new APIs) in a backwards compatible manner.\nImportantly, Chisel maintains ",(0,i.jsx)(r.em,{children:"binary compatibility"})," between minor versions of the same major version.\nFor example, a project compiled against Chisel 5.0.0 can be used with future Chisel versions 5.1.0 or 5.100.2.\nAn incremented ",(0,i.jsx)(r.code,{children:"PATCH"})," version means there are backwards compatible bug fixes."]}),"\n",(0,i.jsx)(r.h2,{id:"firtool-version",children:"Firtool Version"}),"\n",(0,i.jsxs)(r.p,{children:["Starting with Chisel v3.6, Chisel uses firtool (part of the ",(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt",children:"LLVM CIRCT"})," project) to generate Verilog.\nEach version of Chisel is released against a specific version of firtool, shown in the tables below. Chisel automatically uses the corresponding version."]}),"\n",(0,i.jsx)(r.h3,{id:"setting-your-own-firtool-version",children:"Setting Your Own Firtool Version"}),"\n",(0,i.jsx)(r.admonition,{type:"tip",children:(0,i.jsxs)(r.p,{children:["The following instructions apply when emitting SystemVerilog from Chisel APIs like ChiselStage.\nUsers are also encouraged to emit ",(0,i.jsx)(r.code,{children:".fir"})," from Chisel and invoke an installed firtool binary separately using their build tool of choice."]})}),"\n",(0,i.jsxs)(r.p,{children:["To use a specific version, add a dependency on the desired ",(0,i.jsx)(r.a,{href:"https://central.sonatype.com/artifact/org.chipsalliance/llvm-firtool",children:(0,i.jsx)(r.code,{children:"org.chipsalliance::llvm-firtool"})})," release to your build. For example:"]}),"\n",(0,i.jsx)(r.pre,{children:(0,i.jsx)(r.code,{className:"language-scala",metastring:'title="build.sbt"',children:'libraryDependencies += "org.chipsalliance" %% "llvm-firtool" % "1.153.0"\n'})}),"\n",(0,i.jsx)(r.pre,{children:(0,i.jsx)(r.code,{className:"language-scala",metastring:'title="build.mill"',children:'def mvnDeps = Agg(\n  mvn"org.chipsalliance::llvm-firtool:1.153.0"\n)\n'})}),"\n",(0,i.jsxs)(r.p,{children:["Alternatively, you can install firtool yourself from the ",(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases",children:"pre-built artifacts"})," or build it from source.\nTo use your own installed firtool binary, set ",(0,i.jsx)(r.code,{children:"CHISEL_FIRTOOL_PATH"})," to the directory containing the ",(0,i.jsx)(r.code,{children:"firtool"})," binary you want Chisel to use."]}),"\n",(0,i.jsx)(r.admonition,{type:"warning",children:(0,i.jsx)(r.p,{children:"A given version of Chisel is only tested against the version listed in the tables below. It often works with other versions, but it is not guaranteed."})}),"\n",(0,i.jsx)(r.h3,{id:"firtool-version-tables",children:"Firtool Version Tables"}),"\n","\n",(0,i.jsxs)(I,{children:[(0,i.jsxs)(N,{value:"releases",label:"Releases",default:!0,children:[(0,i.jsxs)(s,{open:!0,children:[(0,i.jsx)("summary",{children:"Chisel 7.x"}),(0,i.jsxs)(r.table,{children:[(0,i.jsx)(r.thead,{children:(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.th,{children:"Chisel Version"}),(0,i.jsx)(r.th,{children:"Firtool Version"})]})}),(0,i.jsxs)(r.tbody,{children:[(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.16.
10"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.160.0",children:"1.160.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.15.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.158.0",children:"1.158.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.14.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.155.0",children:"1.155.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.13.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.149.0",children:"1.149.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.12.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.146.0",children:"1.146.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.11.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.144.0",children:"1.144.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.10.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.143.0",children:"1.143.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.9.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.140.0",children:"1.140.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.8.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.139.0",children:"1.139.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.7.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.139.0",children:"1.139.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.6.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.138.0",children:"1.138.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.5.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.138.0",children:"1.138.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.4.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.137.0",children:"1.137.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.3.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.135.0",children:"1.135.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.2.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.133.0",children:"1.133.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.1.1"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.131.0",children:"1.131.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.1.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.131.0",children:"1.131.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.0.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.128.0",children:"1.128.0"})})]})]})]})]}),(0,i.jsxs)(s,{children:[(0,i.jsx)("summary",{children:"Chisel 6.x"}),(0,i.jsxs)(r.table,{children:[(0,i.jsx)(r.thead,{children:(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.th,{children:"Chisel Version"}),(0,i.jsx)(r.th,{children:"Firtool Version"})]})}),(0,i.jsxs)(r.tbody,{children:[(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"6.7.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.62.1",children:"1.62.1"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"6.6.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.62.1",children:"1.62.1"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"6.5.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.62.0",children:"1.62.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"6.4.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.62.0",children:"1.62.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"6.3.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.62.0",children:"1.62.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"6.2.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.62.0",children:"1.62.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"6.1.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.62.0",children:"1.62.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"6.0.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.62.0",children:"1.62.0"})})]})]})]})]}),(0,i.jsxs)(s,{children:[(0,i.jsx)("summary",{children:"Chisel 5.x"}),(0,i.jsxs)(r.table,{children:[(0,i.jsx)(r.thead,{children:(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.th,{children:"Chisel Version"}),(0,i.jsx)(r.th,{children:"Firtool Version"})]})}),(0,i.jsxs)(r.tbody,{children:[(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"5.3.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.43.0",children:"1.43.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"5.2.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.43.0",children:"1.43.0"})})]}
1),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"5.1.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.43.0",children:"1.43.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"5.0.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.40.0",children:"1.40.0"})})]})]})]})]}),(0,i.jsxs)(s,{children:[(0,i.jsx)("summary",{children:"Chisel 3.x"}),(0,i.jsxs)(r.table,{children:[(0,i.jsx)(r.thead,{children:(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.th,{children:"Chisel Version"}),(0,i.jsx)(r.th,{children:"Firtool Version"})]})}),(0,i.jsxs)(r.tbody,{children:[(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"3.6.1"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.37.0",children:"1.37.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"3.6.0"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.37.0",children:"1.37.0"})})]})]})]})]})]}),(0,i.jsxs)(N,{value:"prereleases",label:"Pre-releases",children:[(0,i.jsxs)(s,{open:!0,children:[(0,i.jsx)("summary",{children:"Chisel 7.x"}),(0,i.jsxs)(r.table,{children:[(0,i.jsx)(r.thead,{children:(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.th,{children:"Chisel Version"}),(0,i.jsx)(r.th,{children:"Firtool Version"})]})}),(0,i.jsxs)(r.tbody,{children:[(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.0.0-RC4"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.128.0",children:"1.128.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.0.0-RC3"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.125.0",children:"1.125.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.0.0-RC2"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.124.0",children:"1.124.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.0.0-RC1"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.114.1",children:"1.114.1"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.0.0-M2"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.77.0",children:"1.77.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"7.0.0-M1"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.66.0",children:"1.66.0"})})]})]})]})]}),(0,i.jsxs)(s,{children:[(0,i.jsx)("summary",{children:"Chisel 6.x"}),(0,i.jsxs)(r.table,{children:[(0,i.jsx)(r.thead,{children:(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.th,{children:"Chisel Version"}),(0,i.jsx)(r.th,{children:"Firtool Version"})]})}),(0,i.jsxs)(r.tbody,{children:[(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"6.0.0-RC2"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.62.0",children:"1.62.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"6.0.0-RC1"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.61.0",children:"1.61.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"6.0.0-M3"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.52.0",children:"1.52.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"6.0.0-M2"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.43.0",children:"1.43.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"6.0.0-M1"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.40.0",children:"1.40.0"})})]})]})]})]}),(0,i.jsxs)(s,{children:[(0,i.jsx)("summary",{children:"Chisel 5.x"}),(0,i.jsxs)(r.table,{children:[(0,i.jsx)(r.thead,{children:(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.th,{children:"Chisel Version"}),(0,i.jsx)(r.th,{children:"Firtool Version"})]})}),(0,i.jsxs)(r.tbody,{children:[(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"5.0.0-RC2"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.40.0",children:"1.40.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"5.0.0-RC1"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.38.0",children:"1.38.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"5.0.0-M2"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.36.0",children:"1.36.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"5.0.0-M1"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.31.0",children:"1.31.0"})})]})]})]})]}),(0,i.jsxs)(s,{children:[(0,i.jsx)("summary",{children:"Chisel 3.x"}),(0,i.jsxs)(r.table,{children:[(0,i.jsx)(r.thead,{children:(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.th,{children:"Chisel Version"}),(0,i.jsx)(r.th,{children:"Firtool Version"})]})}),(0,i.jsxs)(r.tbody,{children:[(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"3.6.0-RC3"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.37.0",children:"1.37.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"3.6.0-RC2"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.31.0",children:"1.31.0"})})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"3.6.0-RC1"}),(0,i.jsx)(r.td,{children:(0,i.jsx)(r.a,{href:"https://github.com/llvm/circt/releases/tag/firtool-1.30.0",children:"1.30.0"})})]})]})]})]})]})]}),"\n",(0,i.jsx)(r.h2,{id:"old-chisel-versions-30---36",children:"Old Chisel versions (3.0 - 3.6)"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.strong,{children:"As of Chisel 5.0.0, this and following sections no longer apply."})}
1),"\n",(0,i.jsxs)(r.p,{children:["Prior to the release of Chisel 5.0.0, Chisel and related projects followed a versioning scheme similar to ",(0,i.jsx)(r.a,{href:"https://pvp.haskell.org/",children:"PVP"}),".\nProject versions were of the form ",(0,i.jsx)(r.code,{children:"A.B.C"})," where ",(0,i.jsx)(r.code,{children:"A.B"})," specifies the ",(0,i.jsx)(r.em,{children:"Major"})," version and ",(0,i.jsx)(r.code,{children:"C"})," specifies the ",(0,i.jsx)(r.em,{children:"Minor"})," version.\nProjects maintain ",(0,i.jsx)(r.em,{children:"binary compatibility"})," between minor versions of the same major version."]}),"\n",(0,i.jsx)(r.h3,{id:"compatible-versions-chisel-30---36",children:"Compatible Versions (Chisel 3.0 - 3.6)"}),"\n",(0,i.jsx)(r.p,{children:"Historically, various Chisel-related projects were distributed across multiple projects each with their own versioning."}),"\n",(0,i.jsxs)(r.p,{children:["Please use the following table to determine which versions of the related projects are compatible.\nIn particular, versions of projects in this table were compiled against the version of any dependencies listed in the same row.\nFor example, ",(0,i.jsx)(r.code,{children:"chisel-iotesters"})," version 1.4 was compiled against ",(0,i.jsx)(r.code,{children:"chisel3"})," version 3.3."]}),"\n",(0,i.jsxs)(r.table,{children:[(0,i.jsx)(r.thead,{children:(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.th,{children:"chisel3"}),(0,i.jsx)(r.th,{children:"chiseltest"}),(0,i.jsxs)(r.th,{children:["chisel-iotesters",(0,i.jsx)("sup",{children:"3"})]}),(0,i.jsx)(r.th,{children:"firrtl"}),(0,i.jsx)(r.th,{children:"treadle"}),(0,i.jsx)(r.th,{children:"diagrammer"}),(0,i.jsxs)(r.th,{children:["firrtl-interpreter",(0,i.jsx)("sup",{children:"2"})]})]})}),(0,i.jsxs)(r.tbody,{children:[(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"3.6"}),(0,i.jsx)(r.td,{children:"0.6"}),(0,i.jsx)(r.td,{children:"-"}),(0,i.jsx)(r.td,{children:"1.6"}),(0,i.jsx)(r.td,{children:"1.6"}),(0,i.jsx)(r.td,{children:"1.6"}),(0,i.jsx)(r.td,{children:"-"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"3.5"}),(0,i.jsxs)(r.td,{children:["0.5",(0,i.jsx)("sup",{children:"4"})]}),(0,i.jsxs)(r.td,{children:["2.5",(0,i.jsx)("sup",{children:"5"})]}),(0,i.jsx)(r.td,{children:"1.5"}),(0,i.jsxs)(r.td,{children:["1.5",(0,i.jsx)("sup",{children:"4"})]}),(0,i.jsxs)(r.td,{children:["1.5",(0,i.jsx)("sup",{children:"4"})]}),(0,i.jsx)(r.td,{children:"-"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"3.4"}),(0,i.jsx)(r.td,{children:"0.3"}),(0,i.jsx)(r.td,{children:"1.5"}),(0,i.jsx)(r.td,{children:"1.4"}),(0,i.jsx)(r.td,{children:"1.3"}),(0,i.jsx)(r.td,{children:"1.3"}),(0,i.jsx)(r.td,{children:"1.4"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"3.3"}),(0,i.jsx)(r.td,{children:"0.2"}),(0,i.jsx)(r.td,{children:"1.4"}),(0,i.jsx)(r.td,{children:"1.3"}),(0,i.jsx)(r.td,{children:"1.2"}),(0,i.jsx)(r.td,{children:"1.2"}),(0,i.jsx)(r.td,{children:"1.3"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"3.2"}),(0,i.jsxs)(r.td,{children:["0.1",(0,i.jsx)("sup",{children:"1"})]}),(0,i.jsx)(r.td,{children:"1.3"}),(0,i.jsx)(r.td,{children:"1.2"}),(0,i.jsx)(r.td,{children:"1.1"}),(0,i.jsx)(r.td,{children:"1.1"}),(0,i.jsx)(r.td,{children:"1.2"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"3.1"}),(0,i.jsx)(r.td,{children:"-"}),(0,i.jsx)(r.td,{children:"1.2"}),(0,i.jsx)(r.td,{children:"1.1"}),(0,i.jsx)(r.td,{children:"1.0"}),(0,i.jsx)(r.td,{children:"1.0"}),(0,i.jsx)(r.td,{children:"1.1"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"3.0"}),(0,i.jsx)(r.td,{children:"-"}),(0,i.jsx)(r.td,{children:"1.1"}),(0,i.jsx)(r.td,{children:"1.0"}),(0,i.jsx)(r.td,{children:"-"}),(0,i.jsx)(r.td,{children:"-"}),(0,i.jsx)(r.td,{children:"1.0"})]})]})]}),"\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)("sup",{children:"1"})," chiseltest 0.1 was published under artifact name ",(0,i.jsx)(r.a,{href:"https://search.maven.org/search?q=a:chisel-testers2_2.12",children:"chisel-testers2"})," (0.2 was published under both artifact names)",(0,i.jsx)(r.br,{}),"\n",(0,i.jsx)("sup",{children:"2"})," Replaced by Treadle, in maintenance mode only since version 1.1, final version is 1.4",(0,i.jsx)(r.br,{}),"\n",(0,i.jsx)("sup",{children:"3"})," Replaced by chiseltest, final version is 2.5",(0,i.jsx)(r.br,{}),"\n",(0,i.jsx)("sup",{children:"4"})," chiseltest, treadle, and diagrammer skipped X.4 to have a consistent major version with Chisel",(0,i.jsx)(r.br,{}),"\n",(0,i.jsx)("sup",{children:"5"})," chisel-iotesters skipped from 1.5 to 2.5 to have a consistent major version with Chisel"]})]})}function O(e={}){const{wrapper:r}={...(0,l.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(D,{...e})}):D(e)}},8453(e,r,s){s.d(r,{R:()=>n,x:()=>c});var t=s(6540);const i={},l=t.createContext(i);function n(e){const r=t.useContext(l);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:n(e.components),t.createElement(l.Provider,{value:r},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.