|
20位元BIN轉BCD的程式: N9 e% _$ E1 B6 P# v; h/ r5 z |
LIBRARY IEEE;& m( e; z* |% V) C% P6 o
use IEEE.std_logic_1164.all;
# J3 U4 C. z7 K* {; n: s$ P! k/ l# D% x, B, D- n( y) L
entity bin2bcd is
6 L. U# d! ^! r2 ]4 U) ]3 yport(5 M! g2 G- \) \4 i" E6 B" l& j6 E1 h
data_in : in std_logic_vector(19 downto 0);3 |3 ^, x$ f% Y( ?$ `( b" ~, Y
EN : in std_logic;
3 {' I& @2 b g, C, p! I1 z data_out : out std_logic_vector(23 downto 0)
1 E) L; q8 n" @6 C) N# x0 N);
0 O: h7 [/ J8 C; qend entity;
& `1 R1 b% s" M
; h- o% P h! a1 ?
- j1 U4 p8 N/ k# Harchitecture bin2bcd of bin2bcd is7 e1 a: Z4 [3 K; ]6 k) e
begin
$ a, @* ?$ e- k3 y
8 w4 o! C3 Y* `process(data_in, EN); ?2 z& j' R! x, w u7 y% X2 W
variable data_in_TEMP : std_logic_vector(2 downto 0);( j" X$ C6 ~( {) H
begin- V' [9 r1 w. M% n
data_in_TEMP := data_in(19 downto 1);) N! Y2 r2 b) V$ L. H1 Z
data_out '0');! y$ p0 S9 B( _3 r$ W
if EN='1' then& _2 C( t3 M$ f8 a. z' w/ A
case data_in_TEMP is
5 N# T4 H7 |# n% N7 j when "000" => data_out(23 downto 1) data_out(23 downto 1) data_out(23 downto 1) data_out(23 downto 1) data_out(23 downto 1) data_out(23 downto 1) data_out(23 downto 1) data_out(23 downto 1) data_out'0');
2 y, E6 t3 h' M* @. r3 R( t6 o4 h end case;
% `1 Z4 d; G7 u* v t& Z! z0 q( L/ Z _: Z1 Y* j9 Y
data_out(0) <= data_in(0);. t6 X& x" ?: l, h: q
end if;
/ U# l! g3 s# Rend process;
+ _5 U5 x4 l: w& a T' R! X3 s, l6 k9 Q
end architecture;
& n) j5 H1 ^& p* Z$ i. a
8 f1 S- |: u# b- A% T! `4 j4 h/ R5 A8 S. {: C0 B2 O
CHECK的時候第一行跟if EN='1' then這行出現錯誤8 r! X! K% |$ Y8 c8 ?6 A
會是什麼問題?? |
|