デジタルタコメーター用のVHDL(ザイリンクス)にコードを書きました。 std_logic_vector
m1を整数に変換する際に、コンパイラによって次のエラーが表示されました。VHDL:std_logic_vectorを整数に変換する際にエラーが発生しました
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.numeric_std.all;
entity tacho is
Port (A : in STD_LOGIC;
B : out STD_LOGIC_vector (15 downto 0));
end tacho;
architecture Behavioral of tacho is
component counter
port(
clk: in std_logic;
m: out std_logic_vector (4 downto 0));
end component;
signal m1 : std_logic_vector (4 downto 0);
variable y: integer := 0;
variable z: integer := 0;
begin
x: counter port map(A,m1);
y:= to_integer(unsigned(m1)); --error1:Syntax error near ":=". error2:Expecting type void for <to_integer>.
z:= y * 60; --Syntax error near ":=".
B <= std_logic_vector(to_unsigned(z, 16));
end Behavioral;
多くのウェブサイトで、私が書いた構文が正しいことがわかりました。 助けてください!
タコメータは、通常、あるサンプリング間隔でイベントの数をカウントします。それはあなたの設計で明らかではありません。 – user1155120
変数を使用しないでください...少なくとも、これは好きではありません。また、32ビットの値に展開するので、合成に制約のない「整数」を使用することはお勧めしません。 – JHBonarius