2

基本的に8ビットのバイナリをBCDに変換するコードを合成しようとしています。コードは関数を使用していますが、次のエラーが発生しています。

Line #: parse error, unexpected END

以下は私のコードの振る舞いの部分です。

architecture Behavioral of bintobcd is


function to_bcd ( bin : std_logic_vector(7 downto 0) ) return std_logic_vector is
variable i : integer:=0;
variable bcd : std_logic_vector(11 downto 0) := (others => '0');
variable bint : std_logic_vector(7 downto 0) := bin;

begin
for i in 0 to 7 loop  -- repeating 8 times.
    bcd(11 downto 1) := bcd(10 downto 0);  --shifting the bits.
    bcd(0) := bint(7);
    bint(7 downto 1) := bint(6 downto 0);
    bint(0) :='0';


    if (i < 7 and bcd(3 downto 0) > "0100") then --add 3 if BCD digit is greater than 4.
        bcd(3 downto 0) := bcd(3 downto 0) + "0011";
    end if;

    if (i < 7 and bcd(7 downto 4) > "0100") then --add 3 if BCD digit is greater than 4.
        bcd(7 downto 4) := bcd(7 downto 4) + "0011";
    end if;

    if (i < 7 and bcd(11 downto 8) > "0100") then  --add 3 if BCD digit is greater than 4.
        bcd(11 downto 8) := bcd(11 downto 8) + "0011";
    end if;


end loop;
return bcd;
end to_bcd;
end Behavioral;

エラーは、私の最後の行「endBehavioral」を示しています。私はここで何が間違っているのですか?

敬具

4

1 に答える 1

3

アーキテクチャの定義は次のとおりです。

architecture identifier of entity_name is
    architecture_declarative_part
begin
    architecture_statement_part
end optional(architecture) optional(architecture_simple_name) ;

アーキテクチャの終了と言う前に、開始と言う必要があり、アーキテクチャステートメントの部分(空の場合もあります)を実行します。

于 2012-09-14T01:14:55.213 に答える