본문 바로가기

Digital Logic27

Verilog 설계에서 중요한 존재들 - 순차 논리 회로(Sequential logic circuits)_#Flip-Flop 순차 논리 회로(Sequential logic circuits) 현재의 입력과 기억 소자에 기록된 과거 출력들과의 조합에 의해 현재의 출력 값이 결정된다. 이 논리 회로에는 조합 논리 회로와 달리 '시간 개념'이 도입 된다. 조합 논리 회로에 대해 잘 모른다면 아래 글을 참고하면 좋다. 2021.05.08 - [Digital Logic/Verilog] - Verilog 설계에서 중요한 존재들 - 조합 논리 회로(Combinational logic circuits) 순차 논리 회로는 역할은 동일하되 특징에 따라 종류가 나눠진다. 그러므로 먼저 역할에 대해 알아보고 특징에 따른 종류를 구분해보도록 하겠다. 1. 역할 정보를 저장하는 기억 소자이며 때로는 데이터 정보를 전송하는 회로에도 사용된다. 2. 동작에.. 2021. 5. 9.
Verilog 설계에서 중요한 존재들 - 조합 논리 회로(Combinational logic circuits) 조합 논리 회로(Combinational logic circuits) 출력이 단지 현재의 입력 값에 의해서만 결정된다. 이 말의 내포는 과거의 입력 값에도 결정되는 회로가 따로 있다는 것을 알 수 있다. 이 부분은 다음 포스팅에서 다루도록 하겠다. 어찌보면 단순.조합. 논리 회로이다. "No clock" 종류는 크게 5가지로 나누었다. Adder, Comparator, Decoder, Encoder, MUX&DEMUX 그럼 순서대로 하나씩 알아보도록 하자. 1. 가산기 (Adder) - 목적: 입력 인자를 더해서 출력한다. - 주의점: 덧셈 결과 M bit 안에 표현하지 못하면 'Overflow bit'가 발생한다. 그래서 이를 방지하기 위한 설계를 고려해야 한다. 그걸 Full Adder라고 하며 Ca.. 2021. 5. 8.
FPGA 설계에 있어 중요한 점은? 큰 줄기를 잡고 가자 글에 앞서 현재 이 블로그에서 다루고 있는 실습 보드 Zybo z7-20는 Xilinx사의 ZNYQ-7000으로 FPGA 뿐만 아니라 ARM 프로세서도 같이 있는 모델이다. 따라서 위의 실습 내용을 Zybo 보드 하나로 해결할 수 있지만 만약 다른 ARM 프로세서가 없는 FPGA 보드를 구매했다면 별도의 ARM 프로세서 장치가 필요하니 이 점을 유의하면 좋을 것 같다 :) FPGA Design Flows 여기서 중요한 개념은 아래와 같이 정리할 수 있다. FPGA 칩은 Core를 연산하고 CPU 칩은 Core를 사용하여 원하는 App을 실행한다. FPGA 칩을 설계하기 위해서는 IP (@Verilog/VHDL)와 Constraints (@.xdc)를 만들어 Synthesis, Implementation를.. 2021. 5. 5.
[Zybo z7-20 보드 실습] ARM 프로세스 활용하기 - PS Xilinx에서 제공하는 FPGA 칩 종류 이 중 ARM processor를 갖고 있는 FPGA 칩은 ZYNQ 뿐이다. ARM 프로세스가 구현되어 있는 FPGA의 ZYNQ 보드를 활용하기 위한 실습이다. ZYNQ의 2가지 영역 Processing System (PS) - CPU 연산을 수행 Programmable Logic (PL) - FPGA 연산을 수행 이번 실습에서 사용할 Processing System는 아래와 같다. - DRAM controller - UART 1 EA - MPCore의 ARM Coretes A9 테스트 환경 실습 보드: DIGILENT사 Zybo z7-20 실습 IDE: Xilinx사 Vivado 2020.2 버전 *Application 코딩을 'Vitis' 라는 프로그램에서 .. 2021. 5. 4.
[Zybo z7-20 보드 실습] IP Packaging 하는 법 테스트 환경 실습 보드: DIGILENT사 Zybo z7-20 실습 IDE: Xilinx사 Vivado 2020.2 버전 (Vitis IDE를 쓰기 위해) 원하는 HW 구성의 Block diagram을 만들 때, 기본 설정으로 없는 Package IP를 아래와 같은 방식으로 만들 수 있다. 기본 IP로는 ZYNQ가 있으며 Clock, reset, UART 등의 설정이 가능하다. 아래 실습은 switch와 led으로 구성된 Package IP이다. 원하는 Source 파일 추가 Tools - Create and Package New IP Create and Package New IP 창 IP location: /.srcs/sources_1/imports/ Package IP 여기서 Package IP 버튼.. 2021. 5. 3.
[Zybo z7-20 보드 실습] Xilinx Vivado에 실습 보드 추가하기 Xilinx Vivado에 내가 구매한 실습 보드에 코딩을 하려면 새로운 프로젝트를 생성할 때 보드 설정을 알맞게 해주어야 한다. 하지만 Vivado 기본 보드에 내 실습 보드가 없는 경우가 있다. 그럴 때 아래 2가지 방식 중 한 가지를 택하여 진행하면 문제를 해결할 수 있다. 테스트 환경 실습 보드: DIGILENT사 Zybo z7-20 실습 IDE: Xilinx사 Vivado 2019.1 버전 Vivado 프로그램에서 추가하는 방법 아래 'Update Board Repositories'를 클릭하여 보드 목록 중 사용하는 실습 보드를 선택하여 추가하면 된다. 직접 경로에 추가하는 방법 Vivado 버전이 낮아 위 기능이 지원되지 않는다면, 이 방식을 이용하면 된다. 보드 파일을 다운로드 하여 지정된 .. 2021. 4. 30.
[기초 개념] Verilog 문법 한눈에 보기 Verilog 문법 1) The module keyword - 보통 파일 1개에 module 1개만 (module – endmodule은 한 세트) 2) 규칙 - Always 함수 안에는 wire 타입에 값을 넣을 수 없음 (보통 clk이 변경되었을 때 always 함수 안을 수행하므로 같은 clk base인 reg를 사용해서 문제 발생 안함) - Assign은 특정 파라미터에 값을 지정해줄 때 쓰는데 이는 wire 타입만 가능함 (reg 타입 불가) 3) 보통 코드 구성 방식 - Module문 시작 - Input, output 파라미터 선언 - Always 함수 생성 - 그 안에 if, for, while, case, repeat 등 사용 ※Verilog 코드 예시 module reg_adder ( i.. 2021. 4. 12.