0

シミュレーションで別々に動作する 2 つのコンポーネントがありますが、ボードにデザインを実装する方法がわかりません。2 進数から 7 セグメント表示のデザインと、秒単位でカウントアップするカウンターのデザインがあります。

これら 2 つを連携させて、basys2 ボードに値を表示するにはどうすればよいですか?

タイマーのコード

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY clock IS
port(reset,clk,start,stop:in std_logic;
min,sec:out integer);
end clock;
architecture behaviour of clock is
begin
process(reset,clk,start,stop)
variable tempmin,tempsec:integer:=0;
begin
if(reset='1')then
tempmin:=0;
tempsec:=0;
elsif(stop='1')then
min<=tempmin;
sec<=tempsec;
elsif(start='1')then
if(rising_edge(clk))then
tempsec:=tempsec+1;
if(tempsec=60)then
tempsec:=0;
tempmin:=tempmin+1;
if(tempmin=10)then
tempmin:=0;
end if;
end if;
end if;
end if;
min<=tempmin;
sec<=tempsec;
end process;
end behaviour;

バイナリ~7セグ用コード

architecture Behavioral of SevenSegment is
begin 
process (seg_value)
begin  
if (seg_value = "0000") then
seg <= "0000001";
an <= "1100";
elsif (seg_value = "0001") then
seg <= "1001111";
an <= "1100";
elsif (seg_value = "0010") then
seg <= "0010010";
an <= "1100";
elsif (seg_value = "0011") then
seg <= "0000110";
an <= "1100";
elsif (seg_value = "0100") then
seg <= "1001100";
an <= "1100";
elsif (seg_value = "0101") then
seg <= "0100100";
an <= "1100";
elsif (seg_value = "0110") then
seg <= "0100000";
an <= "1100";
elsif (seg_value = "0111") then
seg <= "0001111";
an <= "1100";
elsif (seg_value = "1000") then
seg <= "0000000";
an <= "1100";
elsif (seg_value = "1001") then
seg <= "0000100";
an <= "1100";
end if;
end process;
end Behavioral;
4

1 に答える 1

2

コンポーネントのインスタンス化 (またはエンティティのインスタンス化) の構文については、VHDL の教科書を参照してください。Emacs VHDL モードと Sigasi は強力なテンプレートを提供するため、多くのコードを入力する必要はありません: http://www.sigasi.com/screencast/entity-instantiation

于 2013-05-24T14:41:17.043 に答える