Skip to content

Commit

Permalink
deploy: db5f34c
Browse files Browse the repository at this point in the history
  • Loading branch information
dalance committed May 13, 2024
1 parent ac6a38e commit 9ec3107
Show file tree
Hide file tree
Showing 13 changed files with 82 additions and 12 deletions.
5 changes: 3 additions & 2 deletions nightly/book/02_features.html
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,8 @@ <h2 id="abstraction-of-clock-and-reset"><a class="header" href="#abstraction-of-
these can be specified during build-time configuration.
This allows generating code for both ASICs with negative asynchronous reset
and FPGAs with positive synchronous reset from the same Veryl code.</p>
<p>Additionally, explicit <code>clock</code> and <code>reset</code> type enables to check whether clock and reset are correctly connected to registers.</p>
<p>Additionally, explicit <code>clock</code> and <code>reset</code> type enables to check whether clock and reset are correctly connected to registers.
If there is a single clock and reset in the module, the connection can be omitted.</p>
<table>
<tr>
<th>SystemVerilog</th>
Expand All @@ -406,7 +407,7 @@ <h2 id="abstraction-of-clock-and-reset"><a class="header" href="#abstraction-of-
i_clk: input clock,
i_rst: input reset,
){
always_ff (i_clk, i_rst) {
always_ff {
if_reset {
} else {
}
Expand Down
7 changes: 7 additions & 0 deletions nightly/book/04_code_examples/01_module.html
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,7 @@ <h1 id="module"><a class="header" href="#module">Module</a></h1>
// variable declaration
var r_data0: logic&lt;ParamA&gt;;
var r_data1: logic&lt;ParamA&gt;;
var r_data2: logic&lt;ParamA&gt;;

// value binding
let _w_data2: logic&lt;ParamA&gt; = i_data;
Expand All @@ -292,6 +293,12 @@ <h1 id="module"><a class="header" href="#module">Module</a></h1>
r_data1 = r_data0;
}

// clock and reset can be omitted
// if there is a single clock and reset in the module
always_ff {
r_data2 = r_data1;
}

assign o_data = r_data1;
}
</code></pre>
Expand Down
10 changes: 10 additions & 0 deletions nightly/book/05_language_reference/06_declaration/03_register.html
Original file line number Diff line number Diff line change
Expand Up @@ -260,12 +260,14 @@ <h1 id="register"><a class="header" href="#register">Register</a></h1>
If <code>if_reset</code> is used, <code>always_ff</code> must have reset variable.
<code>if_reset</code> can be conceal reset porality and synchronisity.
The actual porality and synchronisity can be configured through <code>[build]</code> section of <code>Veryl.toml</code>.</p>
<p>If there is a single clock and reset in the module, clock and reset specification can be omitted.</p>
<pre><code class="language-veryl playground">module ModuleA (
i_clk: input clock,
i_rst: input reset,
) {
var a: logic&lt;10&gt;;
var b: logic&lt;10&gt;;
var c: logic&lt;10&gt;;

always_ff (i_clk) {
a = 1;
Expand All @@ -278,6 +280,14 @@ <h1 id="register"><a class="header" href="#register">Register</a></h1>
b = 1;
}
}

always_ff {
if_reset {
c = 0;
} else {
c = 1;
}
}
}
</code></pre>

Expand Down
4 changes: 2 additions & 2 deletions nightly/book/ja/02_features.html
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,7 @@ <h2 id="trailing-comma"><a class="header" href="#trailing-comma">末尾カンマ
</table>
<h2 id="abstraction-of-clock-and-reset"><a class="header" href="#abstraction-of-clock-and-reset">クロックとリセットの抽象化</a></h2>
<p>クロックの極性やリセットの極性と同期性を構文上指定する必要はなく、ビルド時の設定で指定することができます。これにより同じVerylのコードからASIC向けの負極性・非同期リセットとFPGA向けの正極性・同期リセットのそれぞれのコードを生成することができます。</p>
<p>さらに、明示的な <code>clock</code><code>reset</code> 型により、レジスタへのクロック・リセット接続が正しく行われているかどうかを確認することができます。</p>
<p>さらに、明示的な <code>clock</code><code>reset</code> 型により、レジスタへのクロック・リセット接続が正しく行われているかどうかを確認することができます。モジュール内にクロックとリセットが1つだけの場合、レジスタへの接続を省略することもできます。</p>
<table>
<tr>
<th>SystemVerilog</th>
Expand All @@ -397,7 +397,7 @@ <h2 id="abstraction-of-clock-and-reset"><a class="header" href="#abstraction-of-
i_clk: input clock,
i_rst: input reset,
){
always_ff (i_clk, i_rst) {
always_ff {
if_reset {
} else {
}
Expand Down
7 changes: 7 additions & 0 deletions nightly/book/ja/04_code_examples/01_module.html
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,7 @@ <h1 id="モジュール"><a class="header" href="#モジュール">モジュー
// 変数宣言
var r_data0: logic&lt;ParamA&gt;;
var r_data1: logic&lt;ParamA&gt;;
var r_data2: logic&lt;ParamA&gt;;

// 値の束縛
let _w_data2: logic&lt;ParamA&gt; = i_data;
Expand All @@ -292,6 +293,12 @@ <h1 id="モジュール"><a class="header" href="#モジュール">モジュー
r_data1 = r_data0;
}

// モジュール内にクロックとリセットが1つしかない場合
// クロックとリセットの指定は省略できます
always_ff {
r_data2 = r_data1;
}

assign o_data = r_data1;
}
</code></pre>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -253,12 +253,14 @@ <h1 id="レジスタ"><a class="header" href="#レジスタ">レジスタ</a></h
<p>レジスタ変数とは <code>always_ff</code> で代入される変数です。合成フェーズでフリップフロップにマップされます。</p>
<p><code>always_ff</code> は必須のクロック変数、オプションのリセット変数、<code>{}</code> ブロックをとります。クロックとリセットは <code>()</code> に書きます。指定されたクロックとリセットは <code>clock</code> / <code>reset</code> 型を持ち、そのビット幅は1ビットでなければなりません。</p>
<p><code>if_reset</code><code>always_ff</code> に書ける特別なキーワードで、そのレジスタ変数のリセット条件を示します。<code>if_reset</code> を使う場合は <code>always_ff</code> のリセット変数は必須です。これを使うことで、リセットの極性と同期性を隠ぺいすることができます。実際の極性と同期性は <code>Veryl.toml</code><code>[build]</code> セクションで設定できます。</p>
<p>モジュール内にクロックとリセットが1つしかない場合、クロックとリセットの指定は省略できます。</p>
<pre><code class="language-veryl playground">module ModuleA (
i_clk: input clock,
i_rst: input reset,
) {
var a: logic&lt;10&gt;;
var b: logic&lt;10&gt;;
var c: logic&lt;10&gt;;

always_ff (i_clk) {
a = 1;
Expand All @@ -271,6 +273,14 @@ <h1 id="レジスタ"><a class="header" href="#レジスタ">レジスタ</a></h
b = 1;
}
}

always_ff {
if_reset {
c = 0;
} else {
c = 1;
}
}
}
</code></pre>

Expand Down
21 changes: 19 additions & 2 deletions nightly/book/ja/print.html
Original file line number Diff line number Diff line change
Expand Up @@ -381,7 +381,7 @@ <h2 id="trailing-comma"><a class="header" href="#trailing-comma">末尾カンマ
</table>
<h2 id="abstraction-of-clock-and-reset"><a class="header" href="#abstraction-of-clock-and-reset">クロックとリセットの抽象化</a></h2>
<p>クロックの極性やリセットの極性と同期性を構文上指定する必要はなく、ビルド時の設定で指定することができます。これにより同じVerylのコードからASIC向けの負極性・非同期リセットとFPGA向けの正極性・同期リセットのそれぞれのコードを生成することができます。</p>
<p>さらに、明示的な <code>clock</code><code>reset</code> 型により、レジスタへのクロック・リセット接続が正しく行われているかどうかを確認することができます。</p>
<p>さらに、明示的な <code>clock</code><code>reset</code> 型により、レジスタへのクロック・リセット接続が正しく行われているかどうかを確認することができます。モジュール内にクロックとリセットが1つだけの場合、レジスタへの接続を省略することもできます。</p>
<table>
<tr>
<th>SystemVerilog</th>
Expand All @@ -408,7 +408,7 @@ <h2 id="abstraction-of-clock-and-reset"><a class="header" href="#abstraction-of-
i_clk: input clock,
i_rst: input reset,
){
always_ff (i_clk, i_rst) {
always_ff {
if_reset {
} else {
}
Expand Down Expand Up @@ -796,6 +796,7 @@ <h2 id="ビルドする"><a class="header" href="#ビルドする">ビルドす
// 変数宣言
var r_data0: logic&lt;ParamA&gt;;
var r_data1: logic&lt;ParamA&gt;;
var r_data2: logic&lt;ParamA&gt;;

// 値の束縛
let _w_data2: logic&lt;ParamA&gt; = i_data;
Expand All @@ -820,6 +821,12 @@ <h2 id="ビルドする"><a class="header" href="#ビルドする">ビルドす
r_data1 = r_data0;
}

// モジュール内にクロックとリセットが1つしかない場合
// クロックとリセットの指定は省略できます
always_ff {
r_data2 = r_data1;
}

assign o_data = r_data1;
}
</code></pre>
Expand Down Expand Up @@ -1596,12 +1603,14 @@ <h2 id="型定義"><a class="header" href="#型定義">型定義</a></h2>
<p>レジスタ変数とは <code>always_ff</code> で代入される変数です。合成フェーズでフリップフロップにマップされます。</p>
<p><code>always_ff</code> は必須のクロック変数、オプションのリセット変数、<code>{}</code> ブロックをとります。クロックとリセットは <code>()</code> に書きます。指定されたクロックとリセットは <code>clock</code> / <code>reset</code> 型を持ち、そのビット幅は1ビットでなければなりません。</p>
<p><code>if_reset</code><code>always_ff</code> に書ける特別なキーワードで、そのレジスタ変数のリセット条件を示します。<code>if_reset</code> を使う場合は <code>always_ff</code> のリセット変数は必須です。これを使うことで、リセットの極性と同期性を隠ぺいすることができます。実際の極性と同期性は <code>Veryl.toml</code><code>[build]</code> セクションで設定できます。</p>
<p>モジュール内にクロックとリセットが1つしかない場合、クロックとリセットの指定は省略できます。</p>
<pre><code class="language-veryl playground">module ModuleA (
i_clk: input clock,
i_rst: input reset,
) {
var a: logic&lt;10&gt;;
var b: logic&lt;10&gt;;
var c: logic&lt;10&gt;;

always_ff (i_clk) {
a = 1;
Expand All @@ -1614,6 +1623,14 @@ <h2 id="型定義"><a class="header" href="#型定義">型定義</a></h2>
b = 1;
}
}

always_ff {
if_reset {
c = 0;
} else {
c = 1;
}
}
}
</code></pre>
<div style="break-before: page; page-break-before: always;"></div><h1 id="組み合わせ回路"><a class="header" href="#組み合わせ回路">組み合わせ回路</a></h1>
Expand Down
2 changes: 1 addition & 1 deletion nightly/book/ja/searchindex.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion nightly/book/ja/searchindex.json

Large diffs are not rendered by default.

22 changes: 20 additions & 2 deletions nightly/book/print.html
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,8 @@ <h2 id="abstraction-of-clock-and-reset"><a class="header" href="#abstraction-of-
these can be specified during build-time configuration.
This allows generating code for both ASICs with negative asynchronous reset
and FPGAs with positive synchronous reset from the same Veryl code.</p>
<p>Additionally, explicit <code>clock</code> and <code>reset</code> type enables to check whether clock and reset are correctly connected to registers.</p>
<p>Additionally, explicit <code>clock</code> and <code>reset</code> type enables to check whether clock and reset are correctly connected to registers.
If there is a single clock and reset in the module, the connection can be omitted.</p>
<table>
<tr>
<th>SystemVerilog</th>
Expand All @@ -421,7 +422,7 @@ <h2 id="abstraction-of-clock-and-reset"><a class="header" href="#abstraction-of-
i_clk: input clock,
i_rst: input reset,
){
always_ff (i_clk, i_rst) {
always_ff {
if_reset {
} else {
}
Expand Down Expand Up @@ -833,6 +834,7 @@ <h2 id="build-code"><a class="header" href="#build-code">Build Code</a></h2>
// variable declaration
var r_data0: logic&lt;ParamA&gt;;
var r_data1: logic&lt;ParamA&gt;;
var r_data2: logic&lt;ParamA&gt;;

// value binding
let _w_data2: logic&lt;ParamA&gt; = i_data;
Expand All @@ -857,6 +859,12 @@ <h2 id="build-code"><a class="header" href="#build-code">Build Code</a></h2>
r_data1 = r_data0;
}

// clock and reset can be omitted
// if there is a single clock and reset in the module
always_ff {
r_data2 = r_data1;
}

assign o_data = r_data1;
}
</code></pre>
Expand Down Expand Up @@ -1698,12 +1706,14 @@ <h2 id="typedef"><a class="header" href="#typedef">Typedef</a></h2>
If <code>if_reset</code> is used, <code>always_ff</code> must have reset variable.
<code>if_reset</code> can be conceal reset porality and synchronisity.
The actual porality and synchronisity can be configured through <code>[build]</code> section of <code>Veryl.toml</code>.</p>
<p>If there is a single clock and reset in the module, clock and reset specification can be omitted.</p>
<pre><code class="language-veryl playground">module ModuleA (
i_clk: input clock,
i_rst: input reset,
) {
var a: logic&lt;10&gt;;
var b: logic&lt;10&gt;;
var c: logic&lt;10&gt;;

always_ff (i_clk) {
a = 1;
Expand All @@ -1716,6 +1726,14 @@ <h2 id="typedef"><a class="header" href="#typedef">Typedef</a></h2>
b = 1;
}
}

always_ff {
if_reset {
c = 0;
} else {
c = 1;
}
}
}
</code></pre>
<div style="break-before: page; page-break-before: always;"></div><h1 id="combinational"><a class="header" href="#combinational">Combinational</a></h1>
Expand Down
2 changes: 1 addition & 1 deletion nightly/book/searchindex.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion nightly/book/searchindex.json

Large diffs are not rendered by default.

Binary file modified nightly/playground/pkg/veryl_wasm_bg.wasm
Binary file not shown.

0 comments on commit 9ec3107

Please sign in to comment.