H28 年度 ディジタル回路 IⅠ 演習 3 年電子システム工学科 科目担当:月本 功 (1/2) )氏名( ) 出席番号( 問題 1 問題 3 (1)HDL の正式名称を英語と日本語で答えなさい(10 点)。 全加算器(FA)を使用した図 2 の 4 ビット並列加算器(Adder4)のリ 英語 スト 2 の VHDL 記述を完成させなさい。 : 日本語: hardware description language Adder4 ハードウェア記述言語 (2)HDL が使用される理由を答えなさい(5 点)。 U3:FA A A(3) B(3) Co B 大規模 LSI 設計では,回路図による設計手法では限界があ C S U2:FA A Co Co S(3) c2 るため,機能レベルでの設計や階層設計が可能な HDL を A(2) B(2) 用いることで,より効率的な設計を行うことができるた B め。 C S U1:FA A Co S(2) c2 A(1) B(1) (3)下記のうち,HDL を 5 つ選びなさい(5 点)。 B C S U0:FA A Co S(1) c1 (a)VisualC++ (b) FORTRAN (c)SFL (d)Verilog-HDL A(0) (e)ImpulseC (f)Basic (g)AHDL (h)Java (i)html (j)ABEL B(0) '0' c0 B C S S(0) 【解答】 c d e g j その他,SystemC, SpecC, SystemVerilog 問題 2 図1の回路を記述したリスト 1 の VHDL 記述を完成させなさい。 (a)構成 Entity 名: Adder4 入力 Port: A, B 【型】std_logic_vector(3 downto 0) 出力 Port :S 【型】std_logic_vector(3 downto 0) CO 【型】std_logic (b)enitity 情報 SRFF nS 図 2 4ビット並列加算器 s0 Q s1 nR nQ 図1 library ieee; use ieee.std_logic_1164.all; Entity 名: SRFF 入力 Port 名: nS, nR 出力 Port 名: Q, nQ LIBRARY ieee; USE ieee.std_logic_1164.ALL; entity [ Adder4 is ] port ( A,B : in std_logic_vector(3 downto 0); S : out std_logic_vector(3 downto 0); CO : out std_logic); end [ Adder4 ] architecture [ RTL of Adder4 is ] signal c: std_logic_vector(3 downto 0); entity [ SRFF is ] port ( nS, nR : in std_logic; Q, nQ : out std_logic ); end [ SRFF ] architecture [ RTL of SRFF component FA is port ( A, B, C : in std_logic; S, CO : out std_logic); end component; is ] begin signal s1, s0 : std_logic; c(0) <= ‘0’; begin U0:FA portmap(A=>A(0), B=>B(0), C=>c(0), S=>S(0), CO=>c(1)); U1:FA portmap(A=>A(1), B=>B(1), C=>c(1), S=>S(0), CO=>c(2)); U2:FA portmap(A=>A(2), B=>B(2), C=>c(2), S=>S(0), CO=>c(3)); U3:FA portmap(A=>A(3), B=>B(3), C=>c(3), S=>S(0), CO=>CO); s0 <= nS nand s1; s1 <= nR nand s0; Q <= so; nQ <= s1; end [ RTL end [ RTL ] ] リスト 1 リスト 2 H28 年度 ディジタル回路 IⅠ 演習 3 年電子システム工学科 科目担当:月本 功 (2/2) )氏名( ) 出席番号( 問題4 (1)リスト 3 の回路動作を示す真理値表(表 1)を完成させなさい。 library ieee; use ieee.std_logic_1164.all; entity MUX is port( A, B, C : in std_logic_vector(3 downto 0); Z : out std_logic_vector(3 downto 0); SEL : out std_logic_vector(1 downto 0)); end MUX; architecture RTL of MUX is begin library ieee; use ieee.std_logic_1164.all; entity SRFF is port( S, R : in std_logic; Q, nQ : out std_logic); end SRFF; architecture RTL of SRFF is signal qq: std_logic; begin u0 : process(S, R) begin if R=’1’ then qq<=’0’; elsif S=’1’ then qq<=’1’; end if; end process; Q <= qq; nQ <= not qq; end RTL; 表1 S 0 0 1 1 R 0 1 0 1 Q Q 0 1 0 nQ nQ 1 0 1 リスト 3 process(SEL, A, B, C) begin if SEL = ”00” then Z <= A; elsif SEL = ”01” then Z <= B; elsif SEL = ”01” then Z <= C; else Z <= ”0000”; end if; end process; end RTL; (2) リスト 4,5 は表 2 の回路(マルチプレクサ)の VHDL 記述である。 リスト 4 リスト 4 に process 文の case 文,リスト 5 に process 文の case 文,で 完成させなさい。 問題 5 表2 SEL 0 0 1 1 0 1 0 1 (1)std_logic 型の持つ値と,意味を関連付けないさ。 Z A B C "0000" Entity 名: MUX 入力 Port: A, B, C 【型】std_logic_vector(3 downto 0) SEL 【型】std_logic_vector(1downto 0) 出力 Port : Z 【型】std_logic_vector(3 downto 0) U b W f 0 e X c L i 1 d Z a H h - g (a)ハイインピーダンス,(b)未初期化,(c)不定,(d)1, (e)0,(f)弱い信号の不定,(g)ドントケア,(h)弱い信号 の 1,(i)弱い信号の 0, (2)VHDL におけるデータタイプをすべて答えなさい。 ※機能:SEL の値の応じ、Z に出力する入力(A,B,C)を選択する。 library ieee; use ieee.std_logic_1164.all; entity MUX is port( A, B, C : in std_logic_vector(3 downto 0); Z : out std_logic_vector(3 downto 0); SEL : out std_logic_vector(1 downto 0)); end MUX; architecture RTL of MUX is begin process(SEL, A, B, C) begin case SEL is when ”00” => Z <= A; when ”01” => Z <= B; when ”10” => Z <= C; when others => Z <= ”0000”; end case; end process; end RTL; リスト 4 std_logic, std_logic_vector, integer, boolean, bit, bit_vector, character, string 意味も知っておく。
© Copyright 2024 ExpyDoc