-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Deploy veryl-lang/veryl-lang.org to veryl-lang/veryl-lang.org:gh-pages
- Loading branch information
GitHub Actions
committed
Nov 7, 2024
0 parents
commit 4c61e12
Showing
24 changed files
with
4,802 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
<!doctype html> | ||
<title>404 Not Found</title> | ||
<h1>404 Not Found</h1> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
veryl-lang.org |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,314 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
|
||
<head prefix="og: http://ogp.me/ns#"> | ||
<meta charset="UTF-8"> | ||
<title>Announcing Veryl 0.11.0 | </title> | ||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | ||
|
||
<link rel="icon" type="image/png" href="/favicon.ico"> | ||
|
||
<style> | ||
:root { | ||
/* Primary theme color */ | ||
--primary-color: #2baa59; | ||
/* Primary theme text color */ | ||
--primary-text-color: #543631; | ||
--primary-text-color-over: #000; | ||
/* Primary theme link color */ | ||
--primary-link-color: #F9BB2D; | ||
/* Secondary color: the background body color */ | ||
--secondary-color: #fcfaf6; | ||
--secondary-text-color: #303030; | ||
/* Highlight text color of table of content */ | ||
--toc-highlight-text-color: #d46e13; | ||
--toc-background-color: white; | ||
|
||
--shadow-color: #ddd; | ||
|
||
/* Font used for headers (h1 & h2) */ | ||
--header-font-family: "Fira Sans", sans-serif; | ||
/* Font used for text */ | ||
--text-font-family: "Fira Sans", sans-serif; | ||
} | ||
|
||
@media (prefers-color-scheme: dark) { | ||
:root { | ||
--primary-color: #293831; | ||
--primary-text-color: #d7d7d7; | ||
--primary-text-color-over: #FFF; | ||
--primary-link-color: #9b9b9b; | ||
--secondary-color: #282828; | ||
--secondary-text-color: #f2f2f2; | ||
--toc-highlight-text-color: #f2f2f2; | ||
--toc-background-color: #3a3a3a; | ||
|
||
--shadow-color: #202020; | ||
--header-font-family: "Fira Sans", sans-serif; | ||
|
||
--text-font-family: "Fira Sans", sans-serif; | ||
|
||
} | ||
} | ||
</style> | ||
|
||
|
||
<link rel="preconnect" href="https://fonts.googleapis.com"> | ||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> | ||
<link href="https://fonts.googleapis.com/css2?family=Kumbh+Sans:wght@400;500&display=swap" rel="stylesheet"> | ||
<link href="https://fonts.googleapis.com/css2?family=Ubuntu&display=swap" rel="stylesheet"> | ||
|
||
<link rel="stylesheet" href="/normalize.css"> | ||
<link rel="stylesheet" href="https://veryl-lang.org/juice.css"> | ||
<!-- Juice references /normalize.css, which doesn't work, so we reference ./normalics.css here --> | ||
<link rel="shortcut icon" type="image/x-icon" href="/logo.png" /> | ||
<!-- Google tag (gtag.js) --> | ||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NXW2P6CCF3"></script> | ||
<script> | ||
window.dataLayer = window.dataLayer || []; | ||
function gtag(){dataLayer.push(arguments);} | ||
gtag('js', new Date()); | ||
|
||
gtag('config', 'G-NXW2P6CCF3'); | ||
</script> | ||
|
||
<meta property="og:url" content="https://veryl-lang.org/blog/annoucing-veryl-0-11-0/" /> | ||
<meta property="og:title" content="Announcing Veryl 0.11.0" /> | ||
<meta property="og:description" content="The Veryl team has published a new release of Veryl, 0.11.0. | ||
Veryl is a new hardware descr…" /> | ||
<meta property="og:image" content="https://github.com/veryl-lang/veryl/raw/master/support/logo/veryl_ogp.png" /> | ||
|
||
<meta name="twitter:card" content="summary_large_image" /> | ||
<meta name="twitter:domain" content="veryl-lang.org" /> | ||
<meta name="twitter:title" content="Announcing Veryl 0.11.0" /> | ||
<meta name="twitter:description" content="The Veryl team has published a new release of Veryl, 0.11.0. | ||
Veryl is a new hardware descr…" /> | ||
<meta name="twitter:image" content="https://github.com/veryl-lang/veryl/raw/master/support/logo/veryl_ogp.png" /> | ||
|
||
</head> | ||
|
||
<body> | ||
|
||
<header class="box-shadow"> | ||
|
||
|
||
<a href="https://veryl-lang.org/"> | ||
<div class="logo"> | ||
<img src="https://veryl-lang.org/logo.png" alt="logo"> | ||
|
||
</div> | ||
</a> | ||
|
||
<nav> | ||
|
||
|
||
|
||
<a class="nav-item subtitle-text" href="https://veryl-lang.org/install/">Install</a> | ||
|
||
|
||
|
||
|
||
<a class="nav-item subtitle-text" href="https://veryl-lang.org/docs/">Docs</a> | ||
|
||
|
||
|
||
|
||
<a class="nav-item subtitle-text" href="https://veryl-lang.org/statistics/">Statistics</a> | ||
|
||
|
||
|
||
|
||
<a class="nav-item subtitle-text" href="https://veryl-lang.org/blog/">Blog</a> | ||
|
||
|
||
|
||
<a class="nav-item subtitle-text" href="https://doc.veryl-lang.org/playground">Playground</a> | ||
|
||
<a class="nav-item subtitle-text" href="https://github.com/veryl-lang/veryl">Github</a> | ||
|
||
|
||
</nav> | ||
|
||
</header> | ||
|
||
|
||
<main> | ||
|
||
|
||
|
||
|
||
|
||
<div class="toc"> | ||
<div class="toc-sticky"> | ||
|
||
<div class="toc-item"> | ||
<a class="subtext" href="https://veryl-lang.org/blog/annoucing-veryl-0-11-0/#breaking-changes">Breaking Changes</a> | ||
</div> | ||
|
||
|
||
<div class="toc-item-child"> | ||
<a class="subtext" href="https://veryl-lang.org/blog/annoucing-veryl-0-11-0/#clock-domain-annotation-support"><small>- Clock domain annotation support </small></a> | ||
</div> | ||
|
||
|
||
|
||
<div class="toc-item"> | ||
<a class="subtext" href="https://veryl-lang.org/blog/annoucing-veryl-0-11-0/#new-features">New Features</a> | ||
</div> | ||
|
||
|
||
<div class="toc-item-child"> | ||
<a class="subtext" href="https://veryl-lang.org/blog/annoucing-veryl-0-11-0/#support-importing-functions-into-modport"><small>- Support importing functions into modport </small></a> | ||
</div> | ||
|
||
<div class="toc-item-child"> | ||
<a class="subtext" href="https://veryl-lang.org/blog/annoucing-veryl-0-11-0/#add-signed-literal-support"><small>- Add signed literal support </small></a> | ||
</div> | ||
|
||
<div class="toc-item-child"> | ||
<a class="subtext" href="https://veryl-lang.org/blog/annoucing-veryl-0-11-0/#enhance-case-statement-expression"><small>- Enhance case statement/expression </small></a> | ||
</div> | ||
|
||
|
||
|
||
<div class="toc-item"> | ||
<a class="subtext" href="https://veryl-lang.org/blog/annoucing-veryl-0-11-0/#other-changes">Other Changes</a> | ||
</div> | ||
|
||
|
||
</div> | ||
</div> | ||
|
||
|
||
|
||
<div class="content text"> | ||
|
||
<div class="heading-text">Announcing Veryl 0.11.0</div> | ||
<p>The Veryl team has published a new release of Veryl, 0.11.0. | ||
Veryl is a new hardware description language as an alternate to SystemVerilog.</p> | ||
<p>The latest version of Veryl can be downloaded from <a href="https://github.com/veryl-lang/veryl/releases/latest">release page</a>.</p> | ||
<h1 id="breaking-changes">Breaking Changes</h1> | ||
<h2 id="clock-domain-annotation-support">Clock domain annotation support <a style="font-size: 0.8em" href="https://github.com/veryl-lang/veryl/pull/789">#789</a> | ||
</h2> | ||
<p>If there are some clocks in a module, clock domain annotation is required. | ||
Clock domain annotation represents which clock domain each port belongs to. | ||
Additionally, assignment over different clock domains requires <code>unsafe (cdc)</code> block.</p> | ||
<pre data-lang="veryl" style="background-color:#393939;color:#dedede;" class="language-veryl "><code class="language-veryl" data-lang="veryl"><span style="color:#fed6af;">module </span><span>ModuleA ( | ||
</span><span> </span><span style="color:#a0cfa1;">//</span><span style="color:#87ae86;"> clock domain 'a | ||
</span><span> i_clk_a: </span><span style="color:#fffb9d;">input</span><span> 'a </span><span style="color:#fffb9d;">clock</span><span>, | ||
</span><span> i_dat_a: </span><span style="color:#fffb9d;">input</span><span> 'a </span><span style="color:#fffb9d;">logic</span><span>, | ||
</span><span> o_dat_a: </span><span style="color:#fffb9d;">output</span><span> 'a </span><span style="color:#fffb9d;">logic</span><span>, | ||
</span><span> | ||
</span><span> </span><span style="color:#a0cfa1;">//</span><span style="color:#87ae86;"> clock domain 'b | ||
</span><span> i_clk_b: </span><span style="color:#fffb9d;">input</span><span> 'b </span><span style="color:#fffb9d;">clock</span><span>, | ||
</span><span> i_dat_b: </span><span style="color:#fffb9d;">input</span><span> 'b </span><span style="color:#fffb9d;">logic</span><span>, | ||
</span><span> o_dat_b: </span><span style="color:#fffb9d;">output</span><span> 'b </span><span style="color:#fffb9d;">logic</span><span>, | ||
</span><span>) { | ||
</span><span> </span><span style="color:#fed6af;">unsafe</span><span> (cdc) { | ||
</span><span> </span><span style="color:#a0cfa1;">//</span><span style="color:#87ae86;"> assignment from 'a domain to 'b domain | ||
</span><span> </span><span style="color:#fed6af;">assign </span><span>o_dat_b = i_dat_a; | ||
</span><span> } | ||
</span><span>} | ||
</span></code></pre> | ||
<h1 id="new-features">New Features</h1> | ||
<h2 id="support-importing-functions-into-modport">Support importing functions into modport <a style="font-size: 0.8em" href="https://github.com/veryl-lang/veryl/pull/742">#742</a> | ||
</h2> | ||
<p>Function in interface can be imported through <code>import</code> direction in <code>modport</code> declaration.</p> | ||
<pre data-lang="veryl" style="background-color:#393939;color:#dedede;" class="language-veryl "><code class="language-veryl" data-lang="veryl"><span style="color:#fed6af;">interface </span><span>InterfaceA { | ||
</span><span> </span><span style="color:#fed6af;">var </span><span>a: </span><span style="color:#fffb9d;">logic</span><span>; | ||
</span><span> | ||
</span><span> </span><span style="color:#fed6af;">function </span><span>get_a () -> </span><span style="color:#fffb9d;">logic</span><span> { | ||
</span><span> </span><span style="color:#fed6af;">return </span><span>a; | ||
</span><span> } | ||
</span><span> | ||
</span><span> </span><span style="color:#fed6af;">modport </span><span>slave { | ||
</span><span> a : </span><span style="color:#fffb9d;">input</span><span> , | ||
</span><span> get_a: </span><span style="color:#fed6af;">import</span><span>, | ||
</span><span> } | ||
</span><span>} | ||
</span></code></pre> | ||
<h2 id="add-signed-literal-support">Add signed literal support <a style="font-size: 0.8em" href="https://github.com/veryl-lang/veryl/pull/770">#770</a> | ||
</h2> | ||
<p>Signed literal with <code>s</code> prefix is supported.</p> | ||
<pre data-lang="veryl" style="background-color:#393939;color:#dedede;" class="language-veryl "><code class="language-veryl" data-lang="veryl"><span style="color:#fed6af;">module </span><span>ModuleA { | ||
</span><span> </span><span style="color:#fed6af;">local </span><span>a: </span><span style="color:#fffb9d;">u32</span><span> = 32'sb1111; | ||
</span><span> </span><span style="color:#fed6af;">local </span><span>b: </span><span style="color:#fffb9d;">u32</span><span> = 32'so7777; | ||
</span><span> </span><span style="color:#fed6af;">local </span><span>c: </span><span style="color:#fffb9d;">u32</span><span> = 32'sd9999; | ||
</span><span> </span><span style="color:#fed6af;">local </span><span>d: </span><span style="color:#fffb9d;">u32</span><span> = 32'shffff; | ||
</span><span>} | ||
</span></code></pre> | ||
<h2 id="enhance-case-statement-expression">Enhance case statement/expression <a style="font-size: 0.8em" href="https://github.com/veryl-lang/veryl/pull/783">#783</a> | ||
</h2> | ||
<p>As case item, range expression and expression with constant value can be used. | ||
<code>switch</code> which has arbitrary expression as the condition items is added too.</p> | ||
<pre data-lang="veryl" style="background-color:#393939;color:#dedede;" class="language-veryl "><code class="language-veryl" data-lang="veryl"><span style="color:#fed6af;">module </span><span>Module16 { | ||
</span><span> </span><span style="color:#fed6af;">local </span><span>P: </span><span style="color:#fffb9d;">bit</span><span> = 1; | ||
</span><span> | ||
</span><span> </span><span style="color:#fed6af;">var </span><span>a: </span><span style="color:#fffb9d;">logic</span><span>; | ||
</span><span> </span><span style="color:#fed6af;">var </span><span>b: </span><span style="color:#fffb9d;">logic</span><span>; | ||
</span><span> </span><span style="color:#fed6af;">let </span><span>x: </span><span style="color:#fffb9d;">logic</span><span> = 1; | ||
</span><span> </span><span style="color:#fed6af;">let </span><span>y: </span><span style="color:#fffb9d;">logic</span><span> = 1; | ||
</span><span> | ||
</span><span> </span><span style="color:#fed6af;">always_comb</span><span> { | ||
</span><span> </span><span style="color:#fed6af;">case </span><span>x { | ||
</span><span> 5..=7 : a = 1; | ||
</span><span> P - 1 : a = 1; | ||
</span><span> </span><span style="color:#a0cfa1;">//</span><span style="color:#87ae86;"> Error because y is not constant value | ||
</span><span> </span><span style="color:#a0cfa1;">//</span><span style="color:#87ae86;">y - 1 : a = 1; | ||
</span><span> </span><span style="color:#fed6af;">default</span><span>: a = 1; | ||
</span><span> } | ||
</span><span> } | ||
</span><span> | ||
</span><span> </span><span style="color:#fed6af;">always_comb</span><span> { | ||
</span><span> </span><span style="color:#fed6af;">switch</span><span> { | ||
</span><span> </span><span style="color:#a0cfa1;">//</span><span style="color:#87ae86;"> arbitrary expression includuing variable can be used | ||
</span><span> y == 0 : b = 1; | ||
</span><span> </span><span style="color:#fed6af;">default</span><span>: b = 1; | ||
</span><span> } | ||
</span><span> } | ||
</span><span>} | ||
</span></code></pre> | ||
<h1 id="other-changes">Other Changes</h1> | ||
<p>Check out everything that changed in <a href="https://github.com/veryl-lang/veryl/releases/tag/v0.11.0">Release v0.11.0</a>.</p> | ||
|
||
|
||
</div> | ||
|
||
|
||
|
||
</main> | ||
|
||
|
||
<footer> | ||
<small class="subtext"> | ||
<a href="https://huhu.io">Huhu.io</a> © 2021 | ||
</small> | ||
</footer> | ||
|
||
</body> | ||
<script> | ||
const scrollHandler = entries => { | ||
// Find the first entry which intersecting and ratio > 0.9 to highlight. | ||
let entry = entries.find(entry => { | ||
return entry.isIntersecting && entry.intersectionRatio > 0.9; | ||
}); | ||
if (!entry) return; | ||
|
||
document.querySelectorAll(".toc a").forEach((item) => { | ||
item.classList.remove("active"); | ||
}); | ||
|
||
// let url = new URL(`#${entry.target.id}`); | ||
let link = document.querySelector(`.toc a[href$="${decodeURIComponent(`#${entry.target.id}`)}"]`) | ||
if (link) { | ||
link.classList.add("active"); | ||
link.scrollIntoView({ behavior: "auto", block: "nearest" }); | ||
} | ||
}; | ||
// Set -100px root margin to improve highlight experience. | ||
const observer = new IntersectionObserver(scrollHandler, { threshold: 1 }); | ||
let items = document.querySelectorAll('h1,h2,h3,h4,h5,h6'); | ||
items.forEach(item => observer.observe(item)); | ||
</script> | ||
|
||
</html> |
Oops, something went wrong.