본문 바로가기

verilog

(7)
Smart ZYNQ보드 PS 측의 EMIO 확장 이더넷(ethernet) 네트워크 포트 기능 구현 엔지니어링 17G 네트워크 모듈 예비 테스트(PS EMIO 기준)  Smart ZYNQ보드(XC7Z020CLG484-1)  ZYNQ 네트워크 기능은 4가지 방식으로 구현 가능하나의 PS 측 MIO 기능으로 이더넷 포트를 직접 확장두 번째 PS 끝은 EMIO를 통해 이더넷 포트를 PL 포트에 매핑합니다.3개의 PL 포트의 하드웨어 이더넷 기능은 AXI를 통해 PS 측에서 호출됩니다.4개의 PL 터미널은 로직을 사용하여 이더넷 기능을 실행합니다(PS 터미널 참여가 필요하지 않음)여기서 네트워크 포트가 PL 측에 연결되어 있기 때문에 이론적으로 2, 3, 4를 구현할 수 있습니다. 두 번째와 세 번째 방법은 실제로 세 번째 방법이 더 많은 논리적 리소스를 차지한다는 점을 제외하고는 유사한 효과가 있습니다. F..
Rotary Encoder(RSI 503) 및 MAX33076E(수신기) VERILOG 동작 ENCODER는 전기모터나 엔진의 회전각도 또는 회전속도를 측정할 때 사용되는 대표적인 센서입니다.  회전할 때 마다 펄스가 발생합니다. 즉, 펄스 수를 셈으로써 축의 각도를 검출할 수 있습니다. 앱솔루트식 로터리 인코더는 몇 가닥의 신호선에 의하여 축의 절대위치를 검출할 수 있습니다.  RSI503 엔코더를 동작하여 VIVADO를 통해 회전하는 펄스마다 카운트를 세어주는 테스트를 해보려고 합니다. ENCODER의 동작을 이해해보겠습니다.  RSI503은 1024PPR(Perse per revolution)"1ppr"은 "1 pulse per revolution"의 약자입니다. 이는 회전하는 기계 또는 장치에서 한 회전당 발생하는 펄스의 수를 나타냅니다."4체배"..
Verilog - Combination Logic code(half adder,full adder,comparator,decoder)조합논리회로 반가산기 전가산기 4bit 전가산기 4bit Full Subtractor Comparator 2x4 디코더 enable 신호가 들어올 때 동작하는 decoder 3x8 decoder 4x16 decoder `timescale 1ns / 1ps // 반가산기 모듈 정의 module half_adder( input a, b, // 입력 비트 output sum, carry // 합과 자리올림 비트 출력 ); assign sum = a ^ b; // XOR 연산을 통한 합 assign carry = a & b; // AND 연산을 통한 자리올림 endmodule // 반가산기 동작 모델링 module halfadder_behaviors( input a, b, // 입력 비트 output reg s, c // ..
Verilog - DSP FIR Lowpass Filter(2MHz + 30MHz sin PHASE) 주로 주파수 응답의 특정 부분을 필터링하는 데 사용되는 디지털 필터입니다. 코드는 주어진 노이지 신호에 대해 필터링을 수행하고 최종적으로 출력된 신호를 생성합니다. 필터의 동작은 샘플링된 입력 신호의 각 샘플에 대해 가중치가 적용된 이전 값들의 합을 계산하는 것입니다. 디지털 필터 구분(IIR, FIR) FIR 필터(finite impulse response filter) 피드백구조가 아닌 오픈루프방식입니다. FIR필터는 디지털 필터의 한 종류로 입력신호의 일정한(유한한, finite) 값들만을 가지고 필터링을 수행합니다. 따라서 필터의 특성함수인 임펄스 응답을 구해보면 유한한 길이를 가집니다. 필터의 식의 형태에서 보면 회귀(feedback)성분을 갖지 않습니다. 그러므로 동일한 특성을 구현할 때 차수..
Verilog HDL 문법2 Verilog HDL 어휘 규칙 대소문자 구별 주석 : //, /**/ 식별자는 맨 앞에 영문자, 밑줄 ( _ )만 가능 모듈(Module): Verilog에서 디지털 회로는 모듈이라 불리는 논리 블록으로 구성됩니다. 각 모듈은 특정한 동작이나 블록을 나타냅니다. 선언(Declaration): 모듈 내에서 사용할 신호들을 선언합니다. 입력, 출력, 내부 레지스터 등을 정의할 수 있습니다. 할당(Assignment): 값을 할당하기 위해 assign 키워드나 = 기호를 사용합니다. 조합논리게이트(Combinational Logic Gates): AND, OR, NOT, NAND, NOR, XOR, XNOR 게이트 등이 Verilog에서 사용됩니다. 회로들의 동작적 모델링(Behavioral Modeling..
Verilog - reg 와 wire 그리고 in, out, inout 입출력 Verilog에서 reg와 wire는 데이터 타입을 나타내는 키워드입니다. reg는 레지스터를 나타내는 데이터 타입입니다. reg는 시뮬레이션 동작을 모델링하거나 상태를 저장하기 위해 사용됩니다. 이는 순차 논리 (sequential logic)를 표현하는 데에 주로 사용됩니다. reg는 시뮬레이션에서 값을 저장하고 갱신하는 역할을 수행합니다. 순차 블록 내에서 값이 변경되거나, 레지스터에 할당되는 동작을 나타내는 데에 사용됩니다. always 문을 사용하고자 한다면 reg 로 counter를 선언해줘야합니다. wire는 연결선을 나타내는 데이터 타입입니다. wire는 논리 게이트의 출력이나 모듈 간의 데이터 흐름을 나타내기 위해 사용됩니다. 이는 조합 논리 (combinational logic)를 표현..
VERILOG - VIVADO, VITIS 설치 방법 VIVADO - 하드웨어 개발 툴 VITIS - 소프트웨어 개발 툴 여담 [AMD사이트에서 VIVADO 를 깔면 VITIS가 같이 설치되지않습니다. VITIS를 깔면 VIVADO가 같이 설치됩니다. 그래서 밑의 링크는 VITIS 링크입니다. 2019.2 버전입니다. 2019.2 이전의 버전은 VITIS의 이전버전인 SDK여서 의미가 없습니다. 2020 이후의 버전은 용량이 너무 커지고 2019.2 버전과 크게 차이가 없기에 2019.2버전을 추천드립니다.] ​ https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vitis/archive-vitis.html 위의 링크를 통해서 들어가면 VITIS Archive가 있..