Data type and Object 자료형 변환 함수들은 std_logic_arith 패키지에 정의되어 있음.

Slides:



Advertisements
Similar presentations
Ⅰ. 연산자 Ⅱ. 제어 구조. 연산자 : 할당 연산자 - 사용자가 정의한 변수에 임의의 값을 저장하는 기능 strvar = strVar1+ “ Hello ”
Advertisements

파이썬 (Python). 1 일 : 파이썬 프로그래밍 기초 2 일 : 객체, 문자열 3 일 : 문자인코딩, 정규표현식, 옛한글 4 일 : 파일 입출력 5 일 : 함수와 모듈 6 일 : 원시 말뭉치 다루기 실습 7 일 : 주석 말뭉치 다루기 실습 8 일 : 웹 데이터로.

데이터형, 변수, 연산자 컴퓨터 응용 및 실습 I.
1 08 Simple Sequential Logic Design with Finite State Machines & Timing Design.
Introduction 2007년 2학기.
VHDL Package & Subprogram
VHDL 프로그램은 비동기 Reset을 갖는 D 플립플롭을 구현한 것이다
ASIC의 개요 ASIC(Application Specific Integrated Circuit) 특정 용도 주문형 집적회로
디지털 시계 설계.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
Design of Digital Clock (디지털 시계의 설계)
제 7 장 문장 구조화 제어문 지정문 조건문 반복문 GOTO 문 비결정적문.
순차로직 개요.
Chapter 7. 조건문.
가산기 설계.
Multiplexer 설계.
VHDL의 기본 Lecture #5.
VHDL Description D-latch C=1 일 때 Q 는 D의 입력 값 이 전달된다.
오브젝트 플립플롭 IT CookBook, VHDL을 이용한 디지털 회로 입문.
신호등 제어기 차량의 흐름에 따라 신호등의 신호를 제어하는 장치 신호등 제어기의 입출력 신호
19장. 원격 조정 로봇 설계 김용애 1조 김정은 이동한 이재흔.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
VHDL Package and Sub program
Chap. 18 라인 트레이서의 설계 라인 트레이서 바닥에 그려진 선을 따라가는 로봇을 의미 라인 트레이서 구성도
II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계 구성 6장. VHDL 객체 및 타입 7장. VHDL 모델링
오브젝트 조합 회로 IT CookBook, VHDL을 이용한 디지털 회로 입문.
Ch2-2. VHDL Basic VHDL lexical element VHDL description
존슨카운터의 동작을 설명·설계할 수 있다 링카운터의 동작을 설명·설계할 수 있다
VHDL의 기본 Lecture #4.
제2장 기본 문법 (2) 주제 : 연산자, 조건문, 반복문 수원과학대학 컴퓨터정보과.
디지털 시스템 설계(2).
학습목표 변수 비주얼 베이직 자료형 변수 선언하기. 학습목표 변수 비주얼 베이직 자료형 변수 선언하기.
고급 선택 제어문과 반복문 Chapter 9 C에서의 다중 선택 제어문 선 검사 반복 구조와 for 문
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
FSM 설계.
Part 07 제어 구조 ©우균, 창병모 © 우균, 창병모.
Flip-Flop 설계.
Section 02 덧셈 회로 BCD 덧셈 회로 BCD 코드에서 십진수 (16)BCD =
KIM HEESANG PL/SQL 2 KIM HEESANG
C#.
Programmable Logic Device
13. 연산자 오버로딩.
VHDL Mealy and Moore model
MATLAB
JA A V W. 03.
C 언어 교육 02 주차 – scanf & 반복문과 조건문 교육부장 조하정.
어서와 C언어는 처음이지 제14장.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
오브젝트 조합 회로 IT CookBook, VHDL을 이용한 디지털 회로 입문.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
VHDL.
연산자 (Operator).
에어 조건문.
VHDL 디지털시계 2.
2장. 변수와 타입.
컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) -
제 5장 변수, 바인딩, 식 및 제어문 5.1 변수 5.6 표현식 5.2 바인딩 5.7 조건문 5.3 선언 5.8 반복문
Choi Seong Yun 컴퓨터 프로그래밍 기초 #06 : 반복문 Choi Seong Yun
가산기 설계.
제 5장 제어문 Hello!! C 언어 강성호 김학배 최우영.
김선균 컴퓨터 프로그래밍 기초 - 7th : 함수 - 김선균
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
디지털 시계 설계 장성락 전영진 임종엽 전보현 이형준.
LCD.
에어 PHP 입문.
논리회로 설계 및 실험 4주차.
16장. 변수, 연산자, 사용자 정의 함수 변수 배열과 객체 연산자 함수.
실습 9 / 부울식 구현(결합 법칙을 이용한 논리회로 구현)
VHDL 응용 Lecture #10.
Presentation transcript:

Data type and Object 자료형 변환 함수들은 std_logic_arith 패키지에 정의되어 있음. 데이터 할당 및 연산을 수행하지 못한다. 이런 경우 데이터 변환 함수를 이용하여 신호의 데이터 형을 일치 시킬 수 있다. 즉 데이터 변환함수는 자료형의 변환을 위한 함수 이다. 자료형 변환 함수들은 std_logic_arith 패키지에 정의되어 있음. 따라서 본 함수의 사용을 위해서는 사전의 다음 구문을 지정해야 한다. Library ieee: use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; 변환 함수의 종류> Conv_목적자료형 (대상신호, 대상신호간 연산) Conv_integer, Conv_unsigned, Conv_signed, Conv_std_logic_vector 사용 예> signal A, B : unsigned(7 downto 0); signal Y : integer; Y <= conv_integer (A + B);

Attribute (속성) Attribute (속성) : 신호 대한 동작이나 상태 표현을 위한 특성으로 미리 정의된 속성(predefined attribute)과 사용자 정의 속성(user-defined attribute) 이 있다. 표현형식 : 신호이름’ 속성이름 종류 : low, high, left, right, pos, val, succ, pred, leftof, rightof, active, last_active, event, last_event, last_value, delayed, quit, stable, transaction… 사용 예> Event 속성: CLK’EVENT 로 표현, CLK에 EVENT가 발생하면 참값 clk’event and clk=‘1’ -- 클럭이 상승엣지인 경우… clk’event and clk=‘0’ -- 클럭이 하강엣지인 경우…

=, /=, <, <=, >, >= Operator (연산자) Operator : 구문에서의 논리나 관계, 계산의 표현을 위해서 사용하는 기호. 구분 종류 우선 순위 논리 연산자 and, or, nor, xor, xnor 6 관계 연산자 =, /=, <, <=, >, >= 5 덧셈 연산자 +, - 4 연결 연산자 & 부호 3 곱셈 연산자 *, /, mod, rem 2 기타 연산자 **, abs, not 1 ** : exponetiation 승, abs : 절대값, mod : 몫, rem : 나머지,

Statement (1) 1. 병행 문장(Concurrent Statements) 1.1 Signal Assignment, Simple 1.2 Signal Assignment, Conditional 1.3 Signal Assignment, Selected 1.4 Process Statement 2. 순차 문장(Sequential Statements) 2.1 Wait Statement 2.2 If Statement 2.3 Case Statement 2.4For Loop Statement

Statement (1) 병행 문장(Concurrent Statements) 1.1 Signal Assignment (simple) signal에 산술식 혹은 논리식의 결과를 할당 표현형식> 신호_이름 <= 산술식 신호_이름 <= 논리식 표현 예 > signal A, B, C, F, G, H : std_logic; signal X, Y, K : std_logic_vector(7 downto 0); F <= A and B ; G <= A or B ; H <= A nand B ; K <= X + Y; * 우변에서 A, B, X, Y 의 변화가 있는 경우 <= 실행

Statement (1) 1.2 Signal Assignment (conditional) 조건에 부합되는 표현(expression)을 signal 에 할당 (표현은 산술식, 논리식이거나 임의의 객체일 수 있다.) 표현형식1. > 신호_이름 <= 표현 when 조건 표현형식2. > 신호이름 <= 표현1 when 조건1 else 표현2 when 조건2 else 표현3 when 조건3 else 표현4 ; 표현 예 > 4:1 Multiplex 의 표현 F <= I0 WHEN sel = “00” ELSE I1 WHEN sel =“01” ELSE I2 WHEN sel = “10” ELSE I3;

Statement (1) 1.3 Signal Assignment (selected) 표현(expression) = 주어진 조건과 같은 경우 표현(값)을 signal에 할당. 표현형식> WITH expression SELECT signal <= expression1 WHEN constant_value1, expression2 WHEN constant_value2, expression3 WHEN constant_value3; 표현 예> DATA <= A & B & C; --concatenate A, B, C with DATA select Y <= ‘0’ when “000”, ‘1’ when “001”, ‘-’ when others;

Statement (1) 1.4 Process statement 표현형식> [레이블:] process (SENSITIVITY_LIST) {선언문} begin {순차처리문}; end process [레이블]; * Sensitivity_list의 값들이 변할 때 동작 시작 선언문 : Subprogram declaration and body Data type declaration Constant & variable declaration

Statement (1) 대기열값 현재값 A 표현 예> t=0 t=∆ t=5 t=10 t=10+∆ t=15 B * A, B 초기값은 0 대기열값 현재값 A 표현 예> entity simulation_example is end simulation_example ; architecture test1 of simulation_example is signal A, B: bit ; begin P1: process (B) A <= ‘1’; A <= transport ‘0’ after 5 ns; end process P1; P2: process (A) if A =‘1’ then B <= not B after 10 ns; end if ; end process P2; end test1; t=0 (초기화후) t=∆ t=5 t=10 t=10+∆ t=15 ‘0’ B 0 at 5 1 at ∆ ‘0’ 0 at 5 ‘1’ 1 at 10 ‘0’ ‘0’ 1 at 10 0 at 15 1 at10+∆ ‘0’ ‘1’ 0 at 15 ‘1’ 0 at 20 ‘0’ 0 at 15 ‘1’

Statement (1) 다음의 문장 구조를 읽고 설명하시요. 예1) ARCHITECTURE archlist OF list IS BEGIN nand: PROCESS (a,b) c <= NOT (a AND b); END PROCESS nand; END archlist; 예2) Architecture select_1 OF list1 IS mu: PROCESS (a, b, s) IF s = '0' THEN x <= a; ELSE x <= b; END IF; END PROCESS mu;

Statement (1) 순차 문장(Concurrent Statements) 2.1 Wait statement 프로세스문의 수행 중단시키고 대기시키는 문장으로 중지와 재활동의 변화를 제어하는 문이다. 표현 예 ) wait on a, b, c; -- signal a, b, c 에 변화가 있을 때까지 대기 wait until clk=‘1’; --if (clk=‘1’ and clk’event) 문장과 동일 wait for 10 ns; --10 ns 동안 대기 wait until ( x < 100 ); --x 가 100 이하일 때 까지 기다린다.

Statement (1) Library ieee; Use ieee.std_logic_1164.all; Entity DFF is port( D, CL : in std_logic; Q : out std_logic ); End DFF; Architecture beh_wait of DFF is Begin process begin wait until CL=‘1’; Q <= D; end process; End beh_wait;

Statement (1) 2.2 IF statement 주어진 조건에 따라 문장을 실행을 시키는 문 표현형식1> IF 조건 then 문장 -- 조건하에서 문장을 실행 END IF -- IF 문 완료 표현형식2> IF 조건 then 문장1 -- 조건하에서 문장1 수행 ELSE 문장2 -- 조건이 안 맞으면 문장2 수행 END IF 표현형식3> IF 조건1 then 문장1 -- 조건1에서 문장1 수행 ELSE IF 조건 2 then 문장2 -- 조건2에서 문장 2 수행 ELSE 문장3 -- 조건2가 아닌 경우 문장3 수행 END IF -- ELSE IF 문 종료 END IF -- IF 문 종료

Statement (1) IF 문 JK-FF Q+= JQ’ + K’Q 표현 예) entity JKFF is port (SN, RN, J, K, CLK : in bit; Q:inout bit; QN :out :=‘1’ ); end JKFF Architecture JKFF1 of JKFF is begin process (SN, RN, CLK) if RN=‘1’ then Q <=‘0’ after 10 ns ; elseif SN=‘1’ then Q <=‘1’ after 10 ns ; elseif CLK =‘0’ and CLK’event then Q <= (J and not Q) or (not K and Q) after 10ns endif end process QN <= not Q; END JKFF1

Statement (1) 2.3 Case statement IF 의 조건이 아닌 Case 다음의 논리식에서의 논리값에 따라 문장을 실행한다. 표현형식> case 논리식 is when 논리값1 => 문장1; when 논리값2 => 문장2; when others => 문장3; end case; 표현 예> 4:1 Multiplex 의 표현 SEL <= A&B Case sel is WHEN “00” => F <= I0 WHEN “01” => F <= I1 WHEN “10” => F <= I2 WHEN “11” => F <= I3 END Case MUX I0 I1 I2 I3 A B F

Statement (1) 2.4 For loop statement 임의의 동작 (문장으로 기술) 을 반복적으로 수행 할 때 사용한다. 표현형식> 단순 loop statement [label:] loop -- 반복적인 실행으로 탈출을 위해서는 exit, next문 필요 {sequential statement} end loop [label]; For loop statement [label:] for 루프_변수 in 변수_범위 loop -- 변수값이 범위 내에서 {sequential statement} -- 변하면서 반복 실행 While loop statement [label:] while 조건 loop -- 조건이 참이면 실행 거짓이면 loop 탈출

Statement (1) For loop statement 표현 예> loopA: FOR i in 0 to 7 loop y(i) <= a(i) and b(i); END LOOP loopA; 결과값 > y(0) <= a(0) and b(0); y(1) <= a(1) and b(1); y(2) <= a(2) and b(2); y(3) <= a(3) and b(3); ….. Exit 와 Next는 loop 문 내에서 한번 밖에 사용할 수 없다. 예> if C>100 then exit loop1;