CONTACT | TEL : 02-728-3440, EMAIL : SALES@ASTRONLOGIC.COM
ASTRON LOGIC RESEARCH AND DEVELOPMENT CO.,LTD.

» WEBBOARD

ช่วยดู code นี้หน่อยครับ

ทำไมมันได้สถานะเป็น ONLINE ตลอดเลยครับ แม้จะส่งสัญญาณ Serial_OUT ลงกราวด์ตลอดแล้วก็ตาม

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY Core1 IS
PORT(
Clk, Key_tig ,Rx_en : IN STD_LOGIC;
Serial_IN : IN STD_LOGIC_VECTOR(7 downto 0);
Key_Data : IN STD_LOGIC_VECTOR(7 downto 0);
Off_line, On_line, Tx_en : OUT STD_LOGIC;
Serial_OUT : OUT STD_LOGIC_VECTOR(7 downto 0)
);
END Core1;

ARCHITECTURE rtl OF Core1 IS
TYPE Stat1 IS (Online, Offline);
SIGNAL Status : Stat1 := Offline;
BEGIN
PROCESS(Clk) -- Send 'A' every 1 second if 'Offline' status
VARIABLE Count : integer range 0 to 9600 := 0;
BEGIN
IF Clk'EVENT and Clk = '1' THEN
IF Status = Offline THEN -- Status = 'Offline'
On_line <= '0';
Off_line <= '1';
IF Rx_en = '1' THEN
IF Serial_IN = "01010010" THEN -- Check if Serial_IN = 'R' or 'r'
Status <= Online;
ELSE
Status <= Offline;
END IF;
END IF;
IF Count < 9599 THEN
Count := Count + 1;
Tx_en <= '0';
ELSE
Count := 0;
Serial_OUT <= "01000001";
Tx_en <= '1';
END IF;
ELSIF Status = Online THEN -- Status = 'Online'
On_line <= '1';
Off_line <= '0';
Serial_OUT <= Key_Data;
Tx_en <= Key_tig;
END IF;
END IF;
END PROCESS;
END rtl;

จากคุณ : nQuantum ตั้งกระทู้นี้เมื่อ 07:11 [08/05/2006]

ความคิดเห็นที่1

พอจะหาสาเหตุได้แล้วว่าเพราะ2บรรทัดนี้

TYPE Stat1 IS (Online, Offline);
SIGNAL Status : Stat1 := Offline

เมื่อคอมไพล์มันจะให้ค่า Status เท่ากับตัวทางขวาของที่ประกาศ TYPE คือเท่ากับ online เลยเกิดข้อสงสัยว่า ทั้งที่บรรทัดที่เขียนว่า SIGNAL Status : Stat1 := Offline มีการกำหนดค่าเริ่มต้นคือ := offline แท้ๆ แต่ทำไม compiler ถึงให้ค่า Status เป็น Online ครับ?

จากคุณ : nQuantum 07:43 [08/05/2006]
ร่วมด้วยช่วยกันตอบครับ
ชื่อ :
E-Mail :
คำตอบ :







คลิกเพื่อแทรกรูป