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

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

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

Microsoft Word - 実験4_FPGA実験2_2015

if clear = 1 then Q <= " "; elsif we = 1 then Q <= D; end rtl; regs.vhdl clk 0 1 rst clear we Write Enable we 1 we 0 if clk 1 Q if rst =

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

Microsoft PowerPoint LC_15.ppt

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

スライド 1

論理設計の基礎

VHDL VHDL VHDL i

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

Verilog HDL による回路設計記述

VHDL

デザインパフォーマンス向上のためのHDLコーディング法

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

フリップフロップ

TECH_I Vol.25 改訂新版PCIデバイス設計入門

Unconventional HDL Programming ( version) 1

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

スライド 1

FPGA と LUPO その1

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

VBI VBI FM FM FM FM FM DARC DARC

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

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

<4D F736F F D2091B28BC68CA48B8695F18D902E646F63>

0630-j.ppt


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

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

電卓の設計 1

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

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

untitled

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

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

デジタル回路入門

Design at a higher level

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

PeakVHDL Max+Plus VGA VG

Report Template

Handsout3.ppt

卒 業 研 究 報 告

ディジタル回路 第1回 ガイダンス、CMOSの基本回路

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

untitled

スライド 1

Microsoft PowerPoint - 01-VerilogSetup-2019.pptx

FPGAによる24時間時計回路

機能検証トレーニング コース一覧

<91E63589F161>

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

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

S1C17 Family Application Note S1C17 シリーズ PORT 多重割り込みアプリケーションノート Rev.1.0

スライド 1

HW-Slides-04.ppt

計算機アーキテクチャ

Microsoft Word - 卒業論文.doc

Microsoft PowerPoint - 01_Vengineer.ppt


PLL クイック・ガイド for Cyclone III

VHDL

Xilinx XAPP485 Spartan-3E FPGA における最大レート 666Mbps でのデシリアライズ、アプリケーション ノート

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

LSI LSI 2

HW-Slides-05.ppt

スライド 1

KEIm-08SoMハードウェアマニュアル

-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

スライド 1

Microsoft PowerPoint - 01-VerilogSetup-2018.pptx

PowerPoint Presentation

新しくシンボルを作成することもできるが ここでは シンボル :opamp2.asy ファイル を回路と同じフォルダにコピーする コピーしたシンボルファイルをダブルクリックで 開く Fig.4 opamp2 のシンボル 変更する前に 内容を確認する メニュー中の Edit の Attributes の

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

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

卒論発表

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

2. 目的 1RationalRose を利用する場合にプログラム仕様書としての最低限必要な記述項目を明確にする 2 プログラム仕様書として記載内容に不足がない事をチェックする 3UML の知識があるものであれば 仕様書の内容を理解できること 4Rose にて入力した内容を SoDaWord を利用

論理回路設計

CMOS リニアイメージセンサ用駆動回路 C10808 シリーズ 蓄積時間の可変機能付き 高精度駆動回路 C10808 シリーズは 電流出力タイプ CMOS リニアイメージセンサ S10111~S10114 シリーズ S10121~S10124 シリーズ (-01) 用に設計された駆動回路です セン

履歴 修正日 内容 2011/01/18 第 1 版制定 2012/10/ 版 内容 Bee Beans Technologies 社から配布されているネットワーク プロセッサ (SiTCP) のライブラリ使用方法を解説した文書です SiTCP の概要や各信号意味などは別文書 SiTCP

スライド 1

Microsoft Word - VBA基礎(3).docx

main.dvi

PowerPoint プレゼンテーション

Microsoft PowerPoint - 7.Arithmetic.ppt

推奨されるHDLコーディング構文

COINS 5 2.1

デジタル回路入門

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

論理回路設計

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

RSA FA FA AND Booth FA FA RSA 3 4 5

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

論理回路設計

TECSをサポートする構造設計ツール ZIPC Toy!

はじめに : ご提案のポイント

Java講座

vhdl #vhdl

シフトレジスタ ステートマシン 4. シミュレーション記述 シミュレーションに必要な物 テストベンチ シミュレーション特有の記述 4.1 カウンターのシミュレーション テストする回路 テストベンチ シミュレーション結果 参考文献 以下の文献を参考にさせていただきました 小林優 入門 Verilog-

Transcription:

VHDL を使った PLD 設計のすすめ PLD 利用のメリット 小型化 高集積化 回路の修正が容易 VHDL 設計のメリット 汎用の設計になる ( どこのデバイスにも搭載可能 ) 1/16 2001/7/13 大久保弘崇 http://www.aichi-pu.ac.jp/ist/~ohkubo/ 2/16 設計の再利用が促進 MIL 記号の D での設計との比較 Verilog-HDL などでも別に同じ メーカー独自の HDL は 今となっては特にメリットはない PLD 制作の作業フロー 動作記述 *.vhd テストベンチ *.vhd VHDL 記述の概略 : 階層構造 エンティティ : インタフェースを定義 論理合成配置配線 シミュレーション動作検証 アーキテクチャ : 実現を定義 コンポーネント : エンティティを利用 3/16 構成ファイル 4/16

エンティティ : インタフェースを定義 entity HLFDD is port (, : in std_logic ;, : out std_logic ) ; end HLFDD ; アーキテクチャ : エンティティの実現 architecture RH1 of HLFDD is <= xor ; <= and ; end RH1 ; RH1 5/16 HLFDD 6/16 HLFDD ひとつのエンティティに対して いくつもアーキテクチャを定義することができる 例 ) 加算回路のエンティティに キャリーの繰り上げ方の異なる複数のアーキテクチャが宣言できる コンポーネント : 部品の呼び出し entity FULLDD is port (,,i : in std_logic ;,o : out std_logic ) ; end FULLDD ; architecture F1 of FULLDD is 7/16 component HLFDD port (, : in std_logic ;, : out std_logic ) ; end component ; architecture F1 signal 1, 1, 2 : std_logic ; H1 : HLFDD port map(=>,=>,=>1,=>1); H2 : HLFDD port map(1,i,,2) ; o <= 1 or 2 ; end F1 ; 8/16 i H1 1 1 H2 F1 FULLDD 2 o

VHDL のデータ型 std_logic 'U' : Unknown 'X' : Undefined '0' : Low '1' : High 'Z' : Hi-Z '-' : Don't are std_logic_vector Integer haracter ユーザ定義型 ( 列挙 部分値 ) 9/16 ベクタの例 entity DDER8bit is port (, : in std_logic_vector (7 downto 0) ; : out std_logic_vector (7 downto 0) ; o : out std_logic ) ; [ 中略 ] signal : std_logic_vector (8 downto 0) ; L : for i in 0 to 7 generate Fx : FULLDD port map (=>(i),=>(i),=>(i+1),=>(i)); end generate; (0) <= '0' ; o <= (8) ; 0/16 プロセス : 逐次処理風の記述が可能 architecture 1 of ELET is センシティビィティリスト PRO1 : process (,,EL) if EL='1' then Y <= ; else Y <= ; end if ; end process ; end 1 ; Y EL 1/16 状態の保持 : PU 内レジスタの例 architecture REG1 of REGITER is signal content : std_logic_vector (7 downto 0) ; write : process ( reset, clock ) 2/16 値を入れる信号線 非同期リセット if reset = '1' then content <= '00000000' ; 立ち上がり動作 elsif ( clock'event and clock = '1') then if we='1' then content <= inbus ; endif ; endif ; end process ; outbus <= content when oe='1' else 'ZZZZZZZZ' ; end REG1 ; プロセス文は センシティビティリストの信号が変化したとき プロセス内で信号代入している ( 出力 ) 信号を対応して変化させる回路を生成する センシティビティリストの信号が変化しない間は それ以外の ( 入力 ) 信号が変化しても 出力は変化せず先の値を保持する そのような信号をもつプロセスは一般に順序回路に合成されるが ここの例の VHDL プログラムのように 組合せ回路で充分表現できるものもある そういうプロセスはちゃんと組合せ回路に合成される ( はず )

検証も VHDL の枠組みで 実演 1 Halfdd Fulldd 4bit dder プロジェクト作成 シミュレーション 制約 合成 ダウンロード 3/16 テストパターン テスト対象の VHDL プログラム 結果を比較 テストベンチの VHDL プログラム ファイル入出力 wait, after, assert 構文 配置配線後のタイミング検証も 合成不可能なことがらも VHDL は記述可能 実演 2 コンポーネント設計 有限状態機械 (FM) クロック 4/16 カウンタ 4 比較器 4 速度指定数値入力 リセット eq 内部状態 状態遷移 出力生成 Finite tate Machine LED 点滅 参考文献 HDLによるデジタル設計の基礎桜井至, テクノプレス, 1997, 3,200 円実践的に例から入っていくのでとっつきやすい Verilog-HDL の例も平行して掲載されている 詳細に入っていくと物足らなくなる VHDLによるハードウェア設計入門長谷川裕恭, Q 出版社, 1995, 2300 円変に合成結果の詳細に入り込んでいるところがあるが 一通りのことが説明されている VHDL 言語入門, Jayaram hasker, Q 出版社, 1995, 3200 円訳本 VHDL, Douglas L.Perry, II, 1996, 4500 円これも訳本 この中で一番字が多い 関連 URL Xilinx ltera www.xilinx.co.jp www.xilinx.com www.altera.co.jp www.altera.com ModelTech www.model.com ビーアイティ www3.famille.ne.jp/~bit/ 5/16 6/16

Fri Jul 13 01:58:52 2001 rotator.vhd page 1 2 use IEEE.TD_LOGI_1164.LL; 3 4 entity rotator is 5 Port ( pulse : in std_logic; 6 led : out std_logic_vector(7 downto 0)); 7 end rotator; 8 9 architecture behavioral of rotator is 10 type tmystate is (s0,u1,u2,u3,u4,u5,u6,s7,d6,d5,d4,d3,d2,d1); 11 signal mystate : tmystate ; 12 13 -- state machine 14 process(pulse) 15 16 if (pulse event and pulse = 1 ) then 17 case mystate is 18 when s0 => mystate <= u1 ; 19 when u1 => mystate <= u2 ; 20 when u2 => mystate <= u3 ; 21 when u3 => mystate <= u4 ; 22 when u4 => mystate <= u5 ; 23 when u5 => mystate <= u6 ; 24 when u6 => mystate <= s7 ; 25 when s7 => mystate <= d6 ; 26 when d6 => mystate <= d5 ; 27 when d5 => mystate <= d4 ; 28 when d4 => mystate <= d3 ; 29 when d3 => mystate <= d2 ; 30 when d2 => mystate <= d1 ; 31 when d1 => mystate <= s0 ; 32 end case; 33 end if ; 34 end process ; 35 -- signal output 36 process(mystate) 37 38 -- led <= "00000000" ; 39 case mystate is 40 when s0 => led <= "10000000" ; 41 when u1 => led <= "01000000" ; 42 when u2 => led <= "00100000" ; 43 when u3 => led <= "00010000" ; 44 when u4 => led <= "00001000" ; 45 when u5 => led <= "00000100" ; 46 when u6 => led <= "00000010" ; 47 when s7 => led <= "00000001" ; 48 when d6 => led <= "00000010" ; 49 when d5 => led <= "00000100" ; 50 when d4 => led <= "00001000" ; 51 when d3 => led <= "00010000" ; 52 when d2 => led <= "00100000" ; 53 when d1 => led <= "01000000" ; 54 end case; 55 end process ; 56 57 end behavioral; Fri Jul 13 01:35:32 2001 comparate.vhd page 1 2 use IEEE.TD_LOGI_1164.LL; 3 4 entity comparate is 5 Port ( a,b : in std_logic_vector(3 downto 0); 6 eq : out std_logic); 7 end comparate; 8 9 architecture behavioral of comparate is 10 11 12 eq <= 1 when a = b else 0 ; 13 end behavioral;

Fri Jul 13 02:03:12 2001 kr.vhd page 1 2 use IEEE.TD_LOGI_1164.LL; 3 4 entity kr is 5 Port ( clk : in std_logic; 6 inp : in std_logic_vector(3 downto 0); 7 led : out std_logic_vector(7 downto 0); 8 mon : out std_logic_vector(3 downto 0)); 9 end kr; 10 11 architecture kr1 of kr is 12 component counter is 13 Port ( clk,rst : in std_logic; 14 val : out std_logic_vector(3 downto 0)); 15 end component; 16 component comparate is 17 Port ( a,b : in std_logic_vector(3 downto 0); 18 eq : out std_logic); 19 end component; 20 component rotator is 21 Port ( pulse : in std_logic; 22 led : out std_logic_vector(7 downto 0)); 23 end component; 24 signal countval : std_logic_vector(3 downto 0); 25 signal pulse : std_logic ; 26 27 T1 : counter port map (clk,pulse,countval) ; 28 P1 : comparate port map (countval,inp,pulse) ; 29 RT1 : rotator port map (pulse,led) ; 30 mon <= countval ; 31 end kr1; Fri Jul 13 01:33:42 2001 counter.vhd page 1 2 use IEEE.TD_LOGI_1164.LL; 3 use IEEE.TD_LOGI_UNIGNED.LL; 4 5 entity counter is 6 Port ( clk,rst : in std_logic; 7 val : out std_logic_vector(3 downto 0)); 8 end counter; 9 10 architecture ct1 of counter is 11 12 signal value : std_logic_vector(3 downto 0) ; 13 14 15 16 process(clk) 17 18 if (clk event and clk= 1 ) then 19 if rst= 1 then 20 value <= "0000" ; 21 else 22 value <= value + "0001" ; 23 end if; 24 end if ; 25 end process ; 26 27 val <= value ; 28 29 end ct1;