-1
私はこのウェブサイトで見たほとんどのカウンタと異なり、私のBCDカウンタは1つの8ビットBCDカウンタを作るために2つの4ビット加算器を使用する必要があります。これまで私が行ってきたことは、通常の全加算器を設計し、それを通常の4ビット加算器を設計するのに使用したことです。あなたが見ることができるようにVHDL:2つの通常の4ビット加算器を使用して8ビットのBCDカウンタを設計するにはどうすればよいですか?
library ieee;
use ieee.std_logic_1164.all;
entity adder8b_custom is
port(
X: in std_logic_vector(7 downto 0);
Y: in std_logic_vector (7 downto 0);
S: out std_logic_vector (7 downto 0));
end adder8b_custom;
architecture adder8b_custom of adder8b_custom is
component adder4b
port ( X : in STD_LOGIC_VECTOR (3 downto 0);
Y : in STD_LOGIC_vector (3 downto 0);
C0: in STD_LOGIC;
S : out STD_LOGIC_VECTOR (3 downto 0);
C4: out STD_LOGIC);
end component;
signal s1:std_logic_vector (7 downto 0); --for addition
signal s2:std_logic_vector (7 downto 0); --for subtraction
signal s3, s4, s5, s6: std_logic_vector (3 downto 0);--placeholders
signal i, j, k, l: std_logic;
begin
u1: adder4b port map (X => X (3 downto 0), Y => "0001",c0=>'0', S => s3 (3 downto 0), c4=>i);
s1(3 downto 0) <=s3(3 downto 0) when s3 (3 downto 0) /="1010"
else "0000";
s<=s1;
--u2: adder4b port map (X => X (7 downto 4), Y => "0001" ,c0 => i, S => s4 (3 downto 0), c4=>j);
--s1(7 downto 4) <= s4(3 downto 0) when s4(3 downto 0) /= "1010"
--else "0000";
--s(7 downto 4)<= s1;
end;
、信号の後にすべてが台無しにされ、私はそれを修正する方法を知っている知っていますか:
これは、これまでのところ、私のコードです。
すべての入力をいただきありがとうございます。
助けてくれてありがとう、それはまさに私が考えていたものでした!しかし問題はあなたのものと同じです:私は言語に悪いです。誰かが私のためにこれをコードで解決できるかどうかは疑問だった。マシュー入力してくれてありがとう! –