VHDL
VHDL에서 변수는 C 변수처럼 동작합니다: 할당 직후 값이 즉시 사용 가능하고 다음 할당까지 변경되지 않습니다. 이는 프로세스 내 임시 저장과 절차적 계산에 이상적입니다.
VHDL 변수 사용 핵심 규칙
process 키워드와 begin 키워드 사이에 선언.:= 연산자 사용.마지막 포인트(즉시 할당)가 종종 혼란의 원인입니다. 아래 간결한 예제는 변수로 두 신호 연결해 case 문 구동하는 방법을 보여줍니다.
VAR_CASE : process (i_clk) variable v_Choices : std_logic_vector(1 downto 0); begin v_Choices := i_select_1 & i_select_2; -- 연결 case v_Choices is when "00" => o_data <= "0001"; when "01" => o_data <= "0010"; -- 간결성을 위해 추가 case 생략 end case; end process VAR_CASE;
이 스니펫에서 v_Choices는 연결 직후 case 문에 즉시 사용 가능해 변수의 즉각적 업데이트를 보여줍니다.
더 깊은 예로, 두 신호 카피로 카운터를 추적하는 다음 아키텍처를 고려하세요. 두 신호는 똑같아 보이지만, r_Var_Copy1만 리셋 전 5에 도달합니다. r_Var_Copy2는 같은 클록 사이클 내 카운터가 이미 리셋된 뒤에 할당되기 때문입니다.
library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity variable_ex is port ( i_clk : in std_logic; o_done : out std_logic ); end variable_ex; architecture rtl of variable_ex is signal r_Done : std_logic := '0'; signal r_Var_Copy1 : natural range 0 to 5 := 0; signal r_Var_Copy2 : natural range 0 to 5 := 0; begin EX_VAR : process (i_clk) variable v_Count : natural range 0 to 5 := 0; begin if rising_edge(i_clk) then v_Count := v_Count + 1; r_Var_Copy1 <= v_Count; if v_Count = 5 then r_Done <= '1'; v_Count := 0; else r_Done <= '0'; end if; r_Var_Copy2 <= v_Count; end if; end process EX_VAR; o_done <= r_Done; end rtl;
이 동작을 시뮬레이션으로 관찰하려면 간단한 테스트벤치가 제공됩니다. 클록을 토글하며 o_done 출력을 모니터링합니다. ModelSim 사용 시 시뮬레이터의 변수 표시 옵션을 켜야 파형 창에 변수가 나타납니다.
library ieee; use ieee.std_logic_1164.all; entity variable_ex_tb is end variable_ex_tb; architecture behave of variable_ex_tb is component variable_ex port ( i_clk : in std_logic; o_done : out std_logic ); end component variable_ex; constant c_CLK_PERIOD : time := 10 ns; signal r_CLK : std_logic := '0'; signal w_DONE : std_logic; begin UUT : variable_ex port map ( i_clk => r_CLK, o_done => w_DONE ); r_CLK <= not r_CLK after c_CLK_PERIOD/2; end behave;
이 예제는 변수와 신호의 뚜렷한 행동 차이를 보여줍니다: r_Var_Copy1은 5에 도달하지만 r_Var_Copy2는 절대 도달하지 못합니다. 변수가 신호 할당 전에 리셋되기 때문입니다.
VHDL
Python에서 변수란? Python 변수는 값을 저장하는 예약된 메모리 위치입니다. 프로그램에서 변수는 컴퓨터가 처리할 데이터를 제공합니다. Python 변수 타입 Python의 모든 값은 데이터 타입을 가집니다. 숫자, 리스트, 튜플, 문자열, 딕셔너리 등. 변수명은 a, aa, abc 같은 유효한 식별자 가능. 변수 선언과 사용 변수 a를 선언하고 값 출력하는 간단 예제: a=100 print(a) 변수 재선언 Python은 생성된 변수를 재할당할 수 있습니다. Python 2와 3 모두에서 시연: Python 2: #
커스텀 매크로는 팬욱이 시스템 변수라 부르는 것을 통해 많은 CNC 관련 기능에 접근할 수 있게 해줍니다. 이 데이터에는 다음이 포함됩니다. 입출력 신호(외부 장치와 통신) 오프셋(오프셋 레지스터 읽기/쓰기) 알람 및 메시지 표시(프로그램이 오류 감지 시 CNC 알람 생성) 작업자 패널 기능 접근(싱글 블록, 피드 홀드, 피드레이트 오버라이드 활성화/비활성화) 시간/날짜 및 클록 타이머 접근(이벤트 시간 측정) 현재 모달 상태 접근(모드 확인/변경) 현재 축 위치 접근(프로브 사용 시 중요) 전통적으로 팬욱은 이런 데이터를 기