解答例 - 電子工学科

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
意味も知っておく。