計数工学実験/システム情報工学実験第一 「ディジタル回路の基礎」

Similar documents
Verilog HDL による回路設計記述

VelilogHDL 回路を「言語」で記述する

Microsoft PowerPoint - 集積回路工学_ ppt[読み取り専用]

- VHDL 演習 ( 組み合せ論理回路 ) 回路 半加算器 (half adder,fig.-) 全加算器を構成する要素である半加算器を作成する i) リスト - のコードを理解してから, コンパイル, ダウンロードする ii) 実験基板上のスイッチ W, が, の入力,LED, が, の出力とな

Quartus II クイック・スタートガイド

デジタル回路入門

Microsoft Word - 実験4_FPGA実験2_2015

Microsoft PowerPoint LC_15.ppt

ソフトウェア基礎技術研修

ModelSim-Altera - RTL シミュレーションの方法

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

Nios II 簡易チュートリアル

Quartus II はじめてガイド - プロジェクトの作成方法

Nios II ハードウェア・チュートリアル

Quartus II クイック・スタート・ガイド

論理設計の基礎

! STEP 2. Quartus Prime のダウンロード WEB ブラウザで以下の URL を開きます 2 ページ中段の Quartus Prime 開発ソフトウェア ライト エディ

Quartus II はじめてガイド - プロジェクトの作成方法

TULを用いたVisual ScalerとTDCの開発

Microsoft PowerPoint - 7.Arithmetic.ppt

Microsoft Word - ALT0982_program_epcs_by_niosii_v10.doc

Microsoft PowerPoint - 3.3タイミング制御.pptx

HW-Slides-04.ppt

main.dvi

<91E63589F161>

Quartus II はじめてガイド - EDA ツールの設定方法

スライド 1

VLD Kazutoshi Kobayashi

Nios II Flash Programmer ユーザ・ガイド

Quartus II はじめてガイド - EDA ツールの設定方法

回路 7 レジスタ ( 同期イネーブル及び非同期リセット付 ) 入力データを保持するのに用いる記憶素子 使用用途として, マイクロプロセッサ内部で演算や実行状態の保持に用いられる Fig4-2 のレジスタは, クロック信号の立ち上がり時かつ 信号が 1 のときに外部からの 1 ビットデータ R をレ

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

LSI LSI

エンティティ : インタフェースを定義 entity HLFDD is port (, : in std_logic ;, : out std_logic ) ; end HLFDD ; アーキテクチャ : エンティティの実現 architecture RH1 of HLFDD is <= xor

スライド 1

Quartus Prime はじめてガイド - デバイス・プログラミングの方法

SOPC Builder ペリフェラル 簡易ユーザ・ガイド - PIO (Parallel I/O)

授業のあとで 情報処理工学 : 第 3 回 10 進数を 16 進数に変換する方法と 16 進数を 10 進数に変換する方法は 標準的な方法でも良いですか? 履修申告は済みましたか? 割り算 方法 ) 54 余り 6 16 ) 3 余り 3 ) 0 第 4 回へ 201

PowerPoint プレゼンテーション

電卓の設計 1

ディジタル電子回路 設計演習課題

HW-Slides-05.ppt

2ALU 以下はデータ幅 4ビットの ALU の例 加算, 減算,AND,OR の4つの演算を実行する 実際のプロセッサの ALU は, もっと多種類の演算が可能 リスト 7-2 ALU の VHDL 記述 M use IEEE.STD_LOGIC_1164.ALL; 00 : 加算 use IEE

Kazutoshi Kobayashi (kobayasi kit.ac.jp)

VLSI工学

, FPGA Verilog-HDL

「電子政府推奨暗号の実装」評価報告書

三菱電機マイコン機器ソフトウエア株式会社

改訂履歴 改訂日付 改訂内容 2014/11/01 初版発行 2017/01/16 Studuino web サイトリニューアルに伴う改訂 2017/04/14 Studuino web サイトリニューアルに伴うアクセス方法の説明変更 2018/01/22 Mac 版インストール手順変更に伴う改訂

Nios II 簡易チュートリアル

PLDとFPGA

Presentation Title

WAGO PROFIBUS バスカプラ/コントローラと、QJ71PB92Dとのコンフィグレーションマニュアル

ModelSim - アルテラ・シミュレーション・ライブラリ作成および登録方法

<4D F736F F F696E74202D C190DD B A CB48D65208E DC58F49205B8CDD8AB B83685D>

FPGAによる24時間時計回路

1. はじめに 本書は スプリット演算器 MFS2 用コンフィギュレータソフトウェア の取扱方法 操作手順 注意事項などを説明したものです Windows の操作や用語を理解している方を前提にしています Windows の操作や用語については それぞれのマニュアルを参照してください 1.1. MFS

Studuino ライブラリ環境設定Windows編

Studuinoライブラリ環境設定Mac編

(Microsoft Word - \214\264\215e B_\217\221\202\253\215\236\202\335\225\224.docx)

FPGA 外部のメモリをアバロン・MM・インタフェースへ接続する方法

オンチップ・メモリ クイック・ガイド for Cyclone III

インテル(R) Visual Fortran コンパイラ 10.0

Nios II SBT Flash Programmer ユーザ・ガイド

Quartus II はじめてガイド - デバイス・プログラミング方法

Spectrum Setup 画面が現れます Install Tab の各項目に マウス カーソルを合わせると 項目の詳細説明 が表示されます 通常はデフォルトの選択で問題ありませんが LabVIEW Driver Matlab Driver が必要な場合は 選択します 6. Install sel

Maser - User Operation Manual

DWR-S01D Updater 取扱説明書 発行日 :2011/2/28

Microsoft Word - DWR-S01D_Updater_取扱説明書_120514A.doc

AN1526 RX開発環境の使用方法(CS+、Renesas Flash Programmer)

CR-USB 仕様書 株式会社測商技研 JS カード用データ転送用カードリーダー CR-USB 仕様書 取扱説明書 2012 年 07 月 31 日版 株式会社測商技研 1. 概要 本器は当社製自動観測装置で記録した JS カードデータ

Microsoft Word - 19-d代 試é¨fi 解ç�fl.docx

Nios II 簡易シミュレーション

(Microsoft PowerPoint - TINA_Creating_PCB.ppt [\214\335\212\267\203\202\201[\203h])

Microsoft PowerPoint pptx

スライド 1

プログラミング基礎

ReTRY HUB

Microsoft PowerPoint - 01_Vengineer.ppt


Microsoft PowerPoint - FPGA

Microsoft PowerPoint - 01-VerilogSetup-2019.pptx

1. ボードの複数台制御 コンフィグ ROM から FPGA が起動できる場合を想定しています FPGA 回路には 特定のレジスタアドレスにプリセットしたデータが必要です 製品出荷時のサンプル FPGA 回路では レジスタ No.3 を 8bit 幅に設定し FPGA 外部の 4bit ディップスイ

研究成果報告書

スライド 1

問 2. タイミングチャート以下に示す VHDL コードで記述されている回路に関するタイミングチャートを完成させよ ) レジスタの動作 use IEEE.std_logic_64.all; entity RegN is generic (N : integer := 8 port ( CLK, EN

Microsoft PowerPoint LC1_14_論理回路シミュレータ.ppt

Microsoft PowerPoint - LogicCircuits09note.ppt [互換モード]

スライド 1

2.5. Verilog 19 Z= X + Y - Z A+B LD ADD SUB ST (X<<1)+(Y<<1) X 1 2 LD SL ST 2 10

卒業論文 巡回冗長検査 CRC32 のハード / ソフト最適分割の検討 氏名 : 伊藤大喜学籍番号 : 指導教員 : 山崎勝弘教授提出日 : 2009 年 2 月 19 日 立命館大学理工学部電子情報デザイン学科

インテル® Stratix®10 デバイスのロジック・アレイ・ブロックおよびアダプティブ・ロジック・モジュール・ユーザーガイド

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

Jan/25/2019 errata_c17m11_10 S1C17 マニュアル正誤表 項目 リセット保持時間 対象マニュアル発行 No. 項目ページ S1C17M10 テクニカルマニュアル システムリセットコントローラ (SRC) 特性 19-3 S1C17M20/M

CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続

< B8CDD8AB B83685D>

不可能への挑戦株式会社日昇テクノロジー低価格 高品質が不可能? 日昇テクノロジーなら可能にする Cyclone II EP2C5T144 ボード マニュアル 株式会社日昇テクノロジー /01/13 copyright

Quartus II はじめてガイド - Convert Programming File の使い方

ZVH_VIEWER

Quartus II はじめてガイド - Device & Pin Options 設定方法

Transcription:

計数工学実験 / システム情報工学実験第一 ディジタル回路の基礎 ( 全 3 回 ) システム 8 研 三輪忍

参考資料 五島正裕 : ディジタル回路 ( 科目コード 400060) 講義資料 ( ググれば出てくる ) 高木直史 : 論理回路, 昭晃堂 Altera: Cyclone II FPGA スターター開発ボードリファレンス マニュアル Altera: Introduction to Quartus II ( 日本語版バージョン 4.2)

実験の目的 最近の計算機, あるいは, 複雑な制御を行う回路のほとんどはディジタル回路 本実験ではディジタル回路の作成を通して, その特性と設計 / 実装技術を習得する

実験の流れ 第 1 回 : 実験の説明と導入実験 第 2 回 : 組み合せ回路と順序回路 第 3 回 : 回路の高速化 1 週間以内にレポート提出

レポートに関して レポートの内容 この資料に記載されている課題 1~8 を全て行い, その内容を報告すること 提出方法 PDF 化したものを E-mail で提出 miwa@hal.ipc.i.u-tokyo.ac.jp 宛 Cc に sys-sub@keisu.t.u-tokyo.ac.jp を含めること 提出の際は Subject を ディジタル回路レポート 学籍番号 : 氏名 とすること

実験課題一覧 導入 課題 1:HDL による記述, コンパイル,FPGA ボードの使い方 組み合わせ回路の実現 課題 2: 全加算器 課題 3:3bit 加算器 ( リップル キャリー方式 ) 課題 4:2bit 乗算器 入出力 課題 5: やや複雑な外部出力 (7 セグ LED への表示 ) 順序回路の実現 課題 6:3bit カウンタ 回路の高速化 課題 7:3bit 加算器 ( 桁上げ先見方式 ) 課題 8:3bit 加算器 ( リップル キャリー方式のパイプライン化 ) 第 1 回 第 2 回 第 3 回

目次 ディジタル回路の基礎 論理回路の基礎 Verilog-HDL の基礎 Quartus II の使い方 実験課題 付録 :DE1 ピン番号一覧

ディジタル回路の基礎

ディジタル回路とは ディジタル信号を扱う電子回路 ディジタル信号 :1 or 0( 電位の高低に相当 ) 論理回路 : ディジタル回路の数学的モデル なぜディジタルか? ノイズに強い 物理的な信号に多少ノイズが含まれていてもディジタル信号としては同じ 設計が簡単 電位 アナログ回路設計は職人芸だが, ディジタル回路は誰でも作れる 1 0 アナログでは致命的だがディジタル信号としてみれば問題ない ノイズ時間

ディジタル回路の例 身近な例 CPU メモリ 簡単な例 加算器 カウンタ x i y i CPU メモリ c i+1 c i 全加算器 s i

ディジタル回路設計の流れ システム設計 どんなシステムにするか? システムの仕様策定 機能設計 システムを機能ブロックに分割し, 各ブロックの仕様を策定 RTL 設計 各機能ブロックの RTL(Register Transfer Level) を HDL(Hardware Description Language) を用いて記述 RTL: データ (Register) とそれに対する処理を記述したもの 論理設計 RTL 記述を論理回路へと変換 物理設計 論理回路をデバイスへマッピング

この実験の対象 システム設計 機能設計 RTL 設計 論理設計 課題として与える 実際に自分達で行う部分 CAD(Computer Aided Design) が自動的に行う 物理設計

課題の例 全加算器を作成せよ. ただし, 回路の入力はトグル スイッチを用いて与え, 出力は LED に表示させるものとする.

全加算器の論理回路 こういうものを設計 真理値表 x i x i y i c i s i c i+1 0 0 0 0 0 y i c i+1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 c i 回路図 s i 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

実際には 回路図そのものを書くわけではない 使用する CAD ツールによっては直接書くこともあるが, この実験では書かない 回路を HDL(Hardware Description Language) を用いて記述 module full_adder (xin, yin, cin, sout, cout); input xin, yin, cin; output sout, cout; assign sout = (xin ^ yin) ^ cin; assign cout = (xin & yin) ((xin ^ yin) & cin); endmodule 1bit 全加算器の Verilog-HDL コード

実験で使用するデバイス FPGA(Field Programmable Gate Array) 製造後に構成を変更できる LSI 大学等での実験や少品種で廉価なハードウェアを作る場合に用いられる 使用する開発ボード :Altera 社 DE1 FPGA:Cyclone II( ロジック エレメント :18,752) 入出力 : トグル スイッチ,LED,7 セグ LED 等 ホスト PC との接続 :USB

( Cyclone II FPGA スターター開発ボードリファレンス マニュアル より )

開発ボードのブロック図 出力 出力 回路を構成するデバイス 入力 ( Cyclone II FPGA スターター開発ボードリファレンス マニュアル より ) 回路データの転送

開発ボードの使い方 1 HDL による回路設計 CAD ツール 2 記述したコードをコンパイルし, 回路の構成情報を生成 ホスト PC USB ポート 開発ボード 3 回路の構成情報を転送し FPGA にマッピング

論理回路の基礎

論理回路 ディジタル回路の数学的モデル 電位の高低を 1, 0 で表現 論理演算の組み合わせにより回路を記述

基本的な論理演算 AND x y NOT x 論理ゲート 論理ゲート z z 真理値表 x y z 0 0 0 0 1 0 1 0 0 1 1 1 真理値表 x z 0 1 1 0 OR x y XOR x y 論理ゲート 論理ゲート z z 真理値表 x y z 0 0 0 0 1 1 1 0 1 1 1 1 真理値表 x y z 0 0 0 0 1 1 1 0 1 1 1 0

論理回路の種類 組み合わせ回路 状態を持たない回路 入力から出力が一意に決まる例 ) 加算器, 乗算器 順序回路 状態を有する回路 出力は入力の系列に依存例 ) カウンタ

全加算器 加数 (x i ), 被加数 (y i ), 下位桁からの桁上げ (c i ) から加算結果 (s i ) と上位桁への桁上げ (c i+1 ) を計算する回路 真理値表 1 1 1 1 1 0 0 1 + 0 1 1 1 1 0 0 0 0 x i y i c i 回路図 c i+1 s i x i y i c i s i c i+1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

リップル キャリー加算器 複数ビットからなる加数と被加数の加算を行う回路 全加算器をビット数分並べることで実現 x 2 y 2 c 2 x 1 y 1 c 1 x 0 y 0 c 0 =0 全加算器全加算器全加算器 c 3 s 2 c 2 s 1 c 1 s 0 3bit リップル キャリー加算器

カウンタ クロック入力のたびに出力を 1 増やす回路 出力は入力と状態 ( 今のカウント値 ) に依存 ( 順序回路 ) フリップ フロップ : 状態を記憶する回路 クロックに同期して入力された値を保持 0x1 3 3bit 加算器 3 3 フリップ フロップ clock

ハードウェアの遅延とスループット ハードウェア性能を決める 2 大要素 遅延 出力結果がでるまでに要する時間 1 次近似的には最長パスのゲート数で表現 入力出力回路 ( 時刻 t) ( 時刻 t+α) スループット α: 遅延 単位時間あたりの処理量 大量の入力系列を連続で処理する場合に重要な指標 入力回路出力入力回路出力入力回路出力スループットは2 倍

リップル キャリー加算器の遅延 とても大きい (AND + OR + XOR) 2 桁数が多くなると深刻 x 2 y 2 c 2 x 1 y 1 c 1 x 0 y 0 c 0 =0 c 3 s 2 c 2 s 1 c 1 s 0 3bit リップル キャリー加算器

桁上げ先見加算器 桁上げの有無を別の回路で計算することにより高速化 求めた桁上げと並列に配置された全加算器を用いて全ビットを一斉に計算 x 2 y 2 x 1 y 1 x 0 y 0 c 0 =0 x 2 y 2 x 1 y 1 x 0 y 0 c 2 c 1 桁上げ先見器 全加算器全加算器全加算器 c 3 s 2 c 2 s 1 c 1 s 0 3bit 桁上げ先見加算器

パイプライン化 要するに流れ作業 回路規模をあまり増やすことなくスループットを向上 x 2 y 2 c 2 x 1 y 1 c 1 x 0 y 0 c 0 =0 全加算器 3 全加算器 2 全加算器 1 a+b 1 2 3 c+d 1 2 3 e+f 1 2 3 c 3 s 2 c 2 s 1 c 1 s 0 フリップ フロップ パイプライン化された3bitリップル キャリー加算器 a+b, c+d, e+f を続けて行う場合

Verilog-HDL の基礎

Verilog-HDL とは HDL (Hardware Description Language) の一種 VHDL と並ぶ HDL の標準 HDL ディジタル回路を記述するための言語 複雑な回路の設計ともなると回路図を書くのが大変 RTL (Register Transfer Level) で簡潔に記述 文法は (C 言語などの ) プログラミング言語に近い 大きな違いは制御の流れ ( 各文は基本並列動作 )

Verilog-HDL の基本文法 module endmodule: モジュールを定義 input, output: モジュールの入力 / 出力端子 reg, wire: 内部配線がレジスタ or ただの配線 assign: 配線を接続 always @( イベント式 ) begin end: イベント式のイベントが発生した時に実行 if ( 条件式 ) begin end else begin end など

Verilog-HDL のコード例 1 全加算器のコード例 module full_adder (xin, yin, cin, sout, cout); input xin, yin, cin; output sout, cout; assign sout = (xin ^ yin) ^ cin; assign cout = (xin & yin) ((xin ^ yin) & cin); endmodule モジュールの宣言入出力を定義 所望の出力となるように配線を接続 2 つの assign 文は並列に評価される 2 つの出力を並列計算する回路になる

Verilog-HDL のコード例 2 カウンタのコード例 module counter (clock, reset, count); input clock, reset; output reg[0:2] count; always @(posedge clock or posedge reset) begin if (reset) begin count <= 3 b000; end else begin count <= count + 3 b001; end end endmodule 出力はレジスタ ( フリップ フロップに相当 ) リセット時はレジスタに 0 をセット レジスタをインクリメント クロック信号 or リセット信号の立ち上がりで動作

Quartus II の使い方

Quartus II Altera 社が提供している CAD ツール VHDL / Verilog-HDL による記述, コンパイル, シミュレーション機能を提供

Quartus II デザイン フロー 1HDL により回路を記述 2HDL を論理回路に変換 3 生成した回路に対し入出力ピンを割り当て 4 設計した回路が正しく動作するかを機能 / タイミング シミュレーションにより確認 ( この実験では行わない ) 5 回路を FPGA にマッピング ( Introduction to Quartus II より )

新規プロジェクトの開始 (1/3) マイドキュメント の下に 学籍番号 のディレクトリを作り, その中に Task# (# は課題番号 ) というディレクトリを作っておく. スタート メニューから Quartus II を起動 Create a New Project を選択

新規プロジェクトの開始 (2/3) プロジェクト ディレクトリとして先ほど作成したディレクトリを選択する. プロジェクト名は Task# としておく. Add Files は何も追加せずに Next

新規プロジェクトの開始 (3/3) Device family で Cyclone II, Available devices は EP2C20F484C7 を選択 Simulation に ModelSim- Altera, Format に Verilog HDL を選択 最後に確認画面が表示されたら Finish

& 新規デザインの開始 File -> New を選択 起動したウィンドウの中から Design Files -> Verilog HDL File を選択して OK をクリック 右の画面のようにテキスト エディタが開き, 回路を記述できるようになる 終わったら File -> Save All. z=x&y; テキスト エディタ

論理合成 (1/2) Assignments -> Settings を選択. 起動したウィンドウの General の項の Top-level entity を作成したモジュール名に変更 processing -> start compilation あるいは右上の赤で囲んだボタンをクリック

しばらく待って右下の画面が表示されればコンパイル完了 論理合成 (2/2) コンパイルに失敗した場合は下のウインドウにエラーの詳細が表示されるのでそれを元にデバッグを行う

コンパイルに成功すると設計した回路の情報を見ることができる 回路規模 ( 論理エレメント数とレジスタ数 ) 回路遅延 コンパイル後に表示される中央のウインドウの TimeQuest Timing Analyzer -> Multicorner Datasheet Report Summary -> Progagation Delay をクリック 入出力ピン間の遅延を nsec 単位で表示 合成結果の詳細

配置配線 Assignments -> Pin Planner 作成した回路に入出力ピンを割り当て Location をダブル クリックするとドロップ ダウン リストが表示されるのでその中から選択 ( 詳細は付録を参照 ) 割り当てが完了したら再度コンパイル

コンフィギュレーション 開発ボードの電源を投入 Tools -> Programmer 右下のウインドウが立ち上がったら start を実行 デバイスを認識していないのであれば Hardware Setup の Currently selected hardware を USB-Blaster に変更 右上のプログレス バーが 100% になれば完了 ( ボード上の 7 セグ LED が一瞬消えた後に 8888 になるはず )

実験課題

実験課題一覧 ( 再掲 ) 導入 課題 1:HDL による記述, コンパイル,FPGA ボードの使い方 組み合わせ回路の実現 課題 2: 全加算器 課題 3:3bit 加算器 ( リップル キャリー方式 ) 課題 4:2bit 乗算器 入出力 課題 5: やや複雑な外部出力 (7 セグ LED への表示 ) 順序回路の実現 課題 6:3bit カウンタ 回路の高速化 課題 7:3bit 加算器 ( 桁上げ先見方式 ) 課題 8:3bit 加算器 ( リップル キャリー方式のパイプライン化 ) 第 1 回 第 2 回 第 3 回

課題 1:HDL による記述, コンパイル, FPGA ボードの使い方 2 入力 AND ゲート 1 個からなる回路を作成し, その回路に全通りの入力 ( すなわち 00, 01, 10, 11 の 4 通り ) を与えた時の出力を観測し, AND ゲートとして正しく動作していることを確認せよ. ただし,AND ゲートの入力は開発ボード上のトグル スイッチを用いて与えるものとし, 出力は同ボード上の LED に表示させるものとする.

課題 2: 全加算器 全加算器を作成せよ. また, 作成した回路に全通りの入力を与え, その時の出力を観測することにより, 作成した回路が正しく動作することを確認せよ. ただし, 回路の入力はトグル スイッチを用いて与え, 出力は LED に表示させるものとする.

課題 3:3bit リップル キャリー加算器 課題 2 で作成した全加算器 3 つを用いて 3bit リップル キャリー加算器を作成せよ. また, 作成した回路に 8 通りの適当な入力を与え, その時の出力を観測することにより, 作成した回路が正しく動作することを確認せよ. ただし, 回路の入力はトグル スイッチを用いて与え, 出力は LED に表示させるものとする.

課題 4:2bit 乗算器 2bit 乗算器を作成せよ. また, 作成した回路に全通りの入力を与え, その出力を観測することにより, 作成した回路が正しく動作することを確認せよ. ただし, 回路の入力はトグル スイッチを用いて与え, 出力は LED に表示させるものとする.

課題 5: やや複雑な外部出力 (7 セグ LED への表示 ) 課題 3 で作成した 3bit リップル キャリー加算器の出力を 7 セグ LED へ表示するように変更せよ. 出力が 0~7 となる入力の組み合わせに対して加算を行い, 結果が正しく表示されることを確認せよ.

課題 6:3bit カウンタ クロック入力ごとに 0->1->2-> -> 7 のように 1 ずつ値が増加するカウンタを作成し, その動作を確認せよ. ただし, クロック入力はプッシュ ボタンから与えるものとし, 出力は 7 セグ LED に表示させるものとする.

課題 7:3bit 桁上げ先見加算器 3bit 桁上げ先見加算器を作成し, その動作を確認せよ. また, 課題 3 で作成したリップル キャリー加算器と回路遅延および回路規模 ( 論理エレメント数 ) を比較し, 優劣を示せ. ただし, 入力はトグル スイッチで与え, 出力は 7 セグ LED に表示させるものとする. 合成結果によっては 3bit 程度では回路遅延が減らないこともあるので, その場合は, 遅延が減らなくとも, 結果をレポートに記載した上で, 最長パス上のゲートの種類とゲート段数を比較すればよい. ビット数が増えた種類と段数がどう変化するかの考察があるとなおよい.

課題 8:3bit リップル キャリー加算器 のパイプライン化 課題 3 で作成したリップル キャリー加算器を 3 ステージのパイプライン処理を行うように変更し, その動作を確認せよ. また, 作成した回路の単位時間あたりの演算量 (1 秒間に 3bit 加算が何回行えるか ) を求め, パイプライン化を行う前の演算量と比較せよ. ただし, 加数と被加数はトグル スイッチ, クロック入力はプッシュ ボタンにより与え, 出力は 7 セグ LED に表示させるものとする. ヒント : 単位時間あたりの演算量は,1 回の 3bit 加算に要する時間が分かれば求めることができる.1 回の 3bit 加算に要する時間は ( パイプライン化前の ) リップル キャリー加算器の場合は, 回路の遅延を測ればわかる. パイプライン化した場合については各自で考えること. 課題 7 と同様, 合成結果によっては 3bit 程度ではパイプライン化してもサイクルあたりの遅延は変わらないこともある. その場合は, パイプライン化前のリップル キャリー加算器の遅延が, パイプライン化によってサイクルあたり 1/3 になったと仮定し, パイプライン化後の回路の単位時間あたりの演算量を計算せよ.

付録 :DE1 ピン番号一覧

トグル スイッチ トグル スイッチは下がっている状態が Low, 上がっている状態が High ( Introduction to Quartus II より )

赤色 LED LED は出力が High の時にランプが点灯 ( Introduction to Quartus II より )

プッシュ ボタン プッシュ ボタンはデフォルト High 状態. 押下すると Low に下がり, 手を放すと High に戻る ( Introduction to Quartus II より )

7 セグ LED 7 セグ LED は出力が Low の時にランプが点灯 ( Introduction to Quartus II より )