VHDLに構造形式で書かれたこの非常に単純な16ビットとゲートを持っています: ファイルはhereにアップロードされています。構造VHDLコードのクロックの立ち上がりエッジで出力を更新する方法は?
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity and_16bit is
Port (
A : in std_logic_vector(15 downto 0);
B : in std_logic_vector(15 downto 0);
Clk : in STD_LOGIC;
--Rst : in STD_LOGIC;
C : out std_logic_vector(15 downto 0));
end and_16bit;
architecture Behavioral of and_16bit is
component and_1bit is
Port (
A : in std_logic;
B : in std_logic;
C : out std_logic);
end component;
signal s : std_logic_vector(15 downto 0);
begin
ands: for i in 15 downto 0 generate
and_1bit_x: and_1bit port map (A => A(i), B => B(i), C => s(i));
end generate;
process(Clk)
begin
if rising_edge(Clk) then
C <= s;
end if;
end process;
end Behavioral;
クロックの立ち上がりエッジで出力を更新するために、この "s"信号を定義しました。私はこれが構造的なVHDLコードの出力を更新する正しい方法であるのだろうか?最初の出力に対して未知の出力を表示するにはどうすればよいですか?
コメントは大きな助けになります。
正常に動作するはずです。 –
これは、シミュレーションと合成の両方を行うレジスタ転送レベル(RTL)の構造です。構造的表現は、Cレジスタを個々のゲートからなるマスタスレーブフリップフロップにする。ゲート(トランジスタ、抵抗、ダイオードなど)で構成されたフリップフロップの呼び出しはあまりありません。 HDLの合成適格構築物に関する情報のソースは、合成ベンダーのドキュメントまたは今や目立ったIEEE Std 1076.6-2004(通常、ベンダーが受け入れるもののサブセット)です。 – user1155120
"最初の出力に不明な出力を表示するにはどうすればよいですか?" 's'を初期化します。私。 'シグナルs:std_logic_vector(15 downto 0):=(他=> '0');'。 – JHBonarius