ハードウェア記述言語による 論理回路設計とFPGAへの実装 2

Slides:



Advertisements
Similar presentations
プログラミング論 第八回数字の計算,整数の入出力. 本日の内容 前回の課題(続き) 前回の課題(続き) 数字の計算をする 数字の計算をする – 加減乗除を行う – インクリメント演算子とデクリメン ト演算子.
Advertisements

論理回路 第 12 回 TkGate 実習 - 順序回路 38 号館 4 階 N-411 内線 5459
計算機工学特論A 10/17  テキスト内容 1.1~1.4.
VLSI設計論第4回 アキュムレータマシンと 仮遅延シミュレーション
第12回 順序回路の解析方法 瀬戸 順序回路から,以下を導き、解析を行えるようにする タイムチャート 状態遷移関数・出力関数 状態遷移表
ハードウェア記述言語による 論理回路設計とFPGAへの実装 1
5.3 各種カウンタ 平木.
Handel-C基礎 および 7セグとマウスのハンドリング
第2回 真理値表,基本ゲート, 組合せ回路の設計
Verilog HDL 12月21日(月).
テープ(メモリ)と状態で何をするか決める
Quartus II 使用法 (ver 9 sp2, 一部ver. 5)
オリジナルなCPUの開発 指導教授:笠原 宏 05IE063 戸塚 雄太 05IE074 橋本 将平 05IE089 牧野 政道
ロジック回路学習ボード MLCTB-BASE 説明書 NAND 7400 NOT 7404 AND 7408 OR 7432
VLSI設計論第2回 組み合わせ回路の記述と 論理シミュレーション
4.2.2 4to1セレクタ.
第10回 Dフリップフロップ ディジタル回路で特に重要な D-FF 仕組みを理解する タイミング図を読み書きできるようにする 瀬戸
デジタル回路(続き) コンピュータ(ハードウェアを中心に)
2016年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
トキのカタチ2016 電子工作(Arduino)講習
基本情報技術概論(第3回) 埼玉大学 理工学研究科 堀山 貴史
7. 順序回路 五島 正裕.
8. 順序回路の簡単化,機能的な順序回路 五島 正裕.
2005年11月2日(木) 計算機工学論A 修士1年 No, 堀江準.
計算機工学特論A 第4回 論理合成 山越研究室 増山 知東 2007年11月7日 .
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
6. 順序回路の基礎 五島 正裕.
ICトレーナーの構成 7セグメントLED ブレッドボード XOR OR AND NAND 電源端子 スイッチ端子 LED端子 データLED
第6回 よく使われる組合せ回路 瀬戸 重要な組合せ回路を理解し、設計できるようにする 7セグディスプレイ用デコーダ 加算回路・減算回路
OpenMPハードウェア動作合成システムの検証(Ⅰ)
計算機工学特論A   テキスト内容 5.6.
高速剰余算アルゴリズムとそのハードウェア実装についての研究
1.コンピュータと情報処理 p.18 第1章第1節 2.コンピュータの動作のしくみ CPUと論理回路
ディジタル回路 6. 順序回路の実現 五島 正裕.
アルゴリズムとプログラミング (Algorithms and Programming)
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
コンピュータに計算させる命令を確かめよう!
ICトレーナーの構成 7セグメントLED ブレッドボード XOR OR AND NAND 電源端子 スイッチ端子 LED端子 データLED
第二部  回路記述編 第3章 文法概略と基本記述スタイル 3.1 文法を少々 3.1.1~3.1.3.
ディジタル回路の設計と CADによるシステム設計
計算機構成 第2回 ALUと組み合わせ回路の記述
ICトレーナーの構成 7セグメントLED ブレッドボード XOR OR AND NAND 電源端子 スイッチ端子 LED端子 データLED
コンピュータアーキテクチャ 第 7 回.
コンピュータアーキテクチャ 第 7 回.
計算機構成 第3回 データパス:計算をするところ テキスト14‐19、29‐35
計算機構成 第4回 アキュムレータマシン テキスト第3章
VLSI設計論第3回 順序回路の記述と論理合成
計算機構成 第11回 マルチサイクルCPU 慶應大学 天野英晴.
制御文の役割と種類 IF文 論理式と関係演算子 GO TO文
第11回 よく使われる順序回路 複数のFFを接続した回路を解析する際の考え方を学ぶ カウンタ回路の仕組みを理解し,設計できるようにする 瀬戸.
基本情報技術概論(第2回) 埼玉大学 理工学研究科 堀山 貴史
  第3章 論理回路  コンピュータでは,データを2進数の0と1で表現している.この2つの値,すなわち,2値で扱われるデータを論理データという.論理データの計算・判断・記憶は論理回路により実現される.  コンピュータのハードウェアは,基本的に論理回路で作られている。              論理積回路.
計算機工学特論 スライド 電気電子工学専攻 修士1年 弓仲研究室 河西良介
第2回 標本化と量子化.
2017年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
コンピュータアーキテクチャ 第 3 回.
基本情報技術概論(第13回) 埼玉大学 理工学研究科 堀山 貴史
8. 順序回路の実現 五島 正裕.
メカトロニクス 12/15 デジタル回路 メカトロニクス 12/15.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第4回 CPUの役割と仕組み2 命令の解析と実行、クロック、レジスタ
C言語講座 制御(選択) 2006年 計算技術研究会.
コンピュータアーキテクチャ 第 3 回.
情報処理Ⅱ 2005年10月28日(金).
ディジタル回路 8. 機能的な順序回路 五島 正裕.
情報実習I (第1回) 木曜4・5限 担当:北川 晃.
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
2014年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
復習 いろいろな変数型(2) char 1バイト → 英数字1文字を入れるのにぴったり アスキーコード → 付録 int
C言語講座 四則演算  if ,  switch 制御文.
Presentation transcript:

ハードウェア記述言語による 論理回路設計とFPGAへの実装 2 ハードウェア記述言語による 論理回路設計とFPGAへの実装 2 SPP 2009.8.27 高知工業高校  高知大学理学部 本田理恵、三好康夫

内容 前回の補足 順序回路 実習1(先週の課題を完成) 実習2-自由課題ー 回路と使用されたロジックエレメントの確認 HDL文法 フリップフロップ カウンタ 実習1(先週の課題を完成) 実習2-自由課題ー

モジュール 構造 module モジュール名(ポートリスト); ポート宣言 ネット宣言 レジスタ宣言 パラメータ宣言 回路記述本体 assign function alwaysなど end module 内部でやりとりする信号

信号の種類 タイプ 説明 宣言文 入出力区別 ポート 入出力信号 input 信号,信号...; output 信号,信号...; inout 信号,信号...;   入力 出力 入出力 レジスタ 回路内部で、変化し、記憶される信号 reg 信号,信号; 内部の信号 ネット 回路内部の信号(変更されない) wire 信号,信号; 複数ビットの場合はビット幅をつけて宣言(1bitの場合は省略可能)  reg [7:0] a;       wide [15:8] b; 同じビット幅の信号のみ,で連ねて宣言できる。 同じ信号をポートとレジスタ、ポートとネットの両方で宣言することがある。 output [7:0] a; reg [7:0] a;

論理値と数値表現 コメント 論理値 0, 1, x, z x、不定値、z、ハイインピーダンス 数値 <ビット幅>’ <基数><数値> 基数  b,B 2進数        o,O 8進数 d,D 10進数        h,H 16進数 例   8’haa →10101010 例   1’b1 → 1 例   b1 → 0000000.....1 (32bit) ビット幅省略→32bit 基数省略→10進数 x,zは使えない。

演算子 算術演算 + 加算、プラス記号 - 減算、マイナス記号 * 乗算 / 割り算 % 剰余(あまり) 等号演算 == 等しい != 等しくない === 等しい(z,xも) !== 等しくない(z,xも) ビット演算 ~ NOT & AND | OR ^ XOR |~ XNOR 関係演算 < 小 <= 小または等しい > 大 >= 大または等しい

基本文 parameter 定数の代入 parameter パラメータ名 = 定数(式) assign 信号の値の継続的な代入 条件式が成立するとき式1を、     そうでないとき式2を信号に代入 always あるイベントが起こった時に処理する内容を記述 always @ (イベント式) 例 reg [7:0] sum  always @ (a or b) sum <= a+b; (aの値かbの値が変化したとき sumにa+bを代入)

if 文による条件分岐 if 逐次的な条件分岐 begin if (条件式1) 文1 else if (条件式2) ←省略可能 文2     文1 else if (条件式2) ←省略可能 文2 else          文3      end case 複数への同時分岐 case (式) 値1: 文1; 値2: 文2; default: 文3; endcase

組み合わせ回路ーセレクター module sel(d0,d1,dout) input d0, d1; d0 output dout; assign dout= (sel==1’b1)? d1:d0; end module d0 dout d1 sel d0,d1,selが変化したとき module sel(d0,d1,dout) input d0, d1; output dout; always @(d1 or d0 or sel) begin if (sel==1’b1) dout<=d1; else dout<= d0; end end module module sel(d0,d1,dout) input d0, d1; output dout; begin if (sel==1’b1) dout<=d1; else dout<= d0 end endmodule × module 中にいきなりifを入れてはいけない(独特のルール)

順序回路 回路内に記憶素子を含んでいて、クロックと呼ばれる基準信号と入力によって出力がきまる回路 クロックという時間の概念存在する 基本論理素子と記憶素子で構成されている 順序回路の例としては、フリップフロップやカウンタなどがある

クロック信号 ディジタル回路において順序回路を動作させるための基準信号のことであり、一定の周期でH=>L=>H・・・・を繰り返す信号

補足:7セグメントLEDのデコード値 A[7:0] 16進数 0 1111 1100 FC 1 0110 0000 60 2 1101 1010 DA 3 1111 0010 F2 4 0110 0110 66 5 1011 0110 B6 6 1011 1110 BE 7 1110 0000 E0 A[7:0] 16進数 8 1111 1110 FE 9 1111 0110 F6 a 1110 1110 EE b 0011 1110 3E c 0001 1010 1A d 0111 1010 7A e 1001 1110 9E f 1000 1110 8E

フリップフロップ フリップフロップとは、シーソーの働きの意味。 回路の働きが文字通りシーソーの働きに似ている。 入力(D)の変化がクロック(CLK)の立ち上がり、又は 立下りにより出力(Q)に伝わる 通常、リセット(RESET)はクロック(CLK)とは非同期 リセット(RESET)は“L”時リセット

フリップフロップ–HDL記述- module test(a,b,clk,rst); input a; // 入力 posedge negedge module test(a,b,clk,rst); input a;             // 入力 input clk; // クロック信号            input rst; //リセット信号 output b;            // 出力 reg b; always @( posedge clk or negedge rst ) begin if (!rst)  b <= 1‘b0; else b <= a; end endmodule clk a b rst クロックの立ち上がりかリセットの立ち下がりを検出したら以下の動作を行う

実機確認 作成済みのデスクトップにあるSPP/test/test.pofをダブルクリックしてプロジェクト開始 各信号は下記の表の通り割り当てられている 再コンパイルとプログラミングを行う クロック信号をそれぞれ610Hz、305Hz、1Hz、単発パルスにしたときのSW_A0の押し離しに対するLED1の反応を観察しなさい。 信号 信号名(HDL) 装置 ピン番号 入力 a SW_A0 2 出力 b LED1 47 リセット信号 rst RESET 240 クロック信号 clk SW27 28

参考:周波数の切り替え メモリ SW27 1 2 3 4 5 6 7 周波数 40 MHz 20 10 1.25 325 KHz 78.1 1 2 3 4 5 6 7 周波数 40 MHz 20 10 1.25 325 KHz 78.1 19.5 メモリ SW27 8 9 A B C D E F 周波数 9.8 KHz 4.9 244 1.22 610 Hz 305 1.0 ★ ★1クロックスイッチSW28を有効にする。 スイッチ押し下げごとに1つ単発のクロックを発生させる。 1Hz :1秒間に1回のクロック信号(1つのたち上がりとたち下がり) 周波数 周期 1MHz 1x10-6sec 1KHz 1x10-3sec 1Hz 1sec

カウンタ スイッチを押して10秒後に学籍番号を点灯 入力されるクロックは10MHzとする。 10MHz→1周期1E-7sec したら表示

カウンタ HDL記述は資料6を参考に

実習1 先週のメッセージを表示する課題を完成しなさい。 別途配布するプリントを埋めながら実施してください。 デスクトップの SPP/gakuseki/gakuseki.pofをダブルクリックして利用してください 別途配布するプリントを埋めながら実施してください。

実習2-自由課題ー 資料1の カウンタ(P73-) 、クロック(P75 -)、シフト回路(P78-)の説明に目を通して実装して動作確認を行いなさい。また、合成された回路のロジックエレメント数を答えてください。 デスクトップにある作成済みのプロジェクトを利用して構いません 練習8 カウンタ   SPP/count/count.pof  練習9 クロック   SPP/clk/clk.pof シフト回路       SPP/shift/clksegseg.pof どれか1つを選んで1か所でもよいので,自分なりに変更を加えてみてください。この際、資料6のHDL記述の説明をみながらその回路記述を理解して変更してください 例 シフト回路のメッセージを変える。左から右にシフトさせる。 クロックを3ケタにする。 カウンタの時間とメッセージを変える。 作業の過程を別紙(配布する)に記録してください。

参考 HDL独習ソフトで学ぶCQEndeavor Verilog HDL 小林、CQ出版 JFIT資料 個人でQuartus IIを使用してみたい人は、 http://www.altera.co.jp/products/software/quartus-ii/web-edition/qts-we-index.html またはGoogleで Quartus IIと入力