일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- behavioral modeling
- DHT11
- dataflow modeling
- BASYS3
- Algorithm
- uart 통신
- stop watch
- LED
- prescaling
- gpio
- KEYPAD
- i2c 통신
- java
- Pspice
- test bench
- vivado
- soc 설계
- hc-sr04
- ring counter
- half adder
- Linked List
- atmega 128a
- verilog
- ATMEGA128A
- D Flip Flop
- Edge Detector
- FND
- pwm
- Recursion
- structural modeling
- Today
- Total
목록RTL Design/Verilog RTL 설계 (74)
거북이처럼 천천히

1. 4bit 데이터 변수에 담겨 있는 16진수 값을 FND에 출력하기4bit 크기를 갖는 변수에 16진수 값을 저장한 뒤, 이를 FND로 출력하도록 설계한다.동작은 다음과 같이 동작한다.- Common anode는 Switch 0번 ~ 3번를 통해 Control 한다.- Hex value는 Switch 12번 ~ 15번을 통해 표현 하게 된다.- 12번 ~ 15번까지의 Switch로 표현된 16진 값을 4개의 FND에 동시 출력되도록 한다. 1.1. Hex value를 모듈의 입력 값으로 전달하게 되면 이를 출력하기 위한 8개의 다이오드의 출력 정보를 출력한다.Hex value를 모듈의 입력 값으로 전달해야 하기 때문에 입력값은 4bit 크기를 갖는다.8개의 다이오드의 출력 정보를 출력하기 위해서는..

1. Basys3의 FND 다 켜보기Basys3의 FND를 다 켜보도록 하겠다.특별한 데이터를 FND를 통해 출력하지 않는다. 1.1. Basys3의 FND는 어떤 구조를 갖는가?Basys3의 FND의 회로도는 다음과 같은 구조를 갖는다.Basys3는 Common anode 구조로 설계되어 있다.7-Segment를 구성하는 Diode들의 cathode들은 GND로 연결되어 있는 상태이다.따라서 Diode들의 anode에 Vcc 값을 주게 되면 전위차에 의해 전류가 anode에서 cathode로 흐르게 되며, 이로인해 다이오드에 불이 들어오게 된다. 1.2. BJT는 어떻게 동작하는가?BJT의 전류의 방향을 나타내는 화살표가 emitter에서 Base로 향하고 있기 때문에 PNP형 BJT이다.따라서 Bas..
1. Counter의 비트 수 (크기)와 분주비의 상관 관계Counter의 크기는 N bit 를 갖는다면 Counter는 0 ~ 2^N-1 까지 Counting이 가능하다.ex) Counter가 21bit 크기를 갖는다면 0 ~ 2^21 -1까지 Counting이 가능하다.따라서 Basys3의 기본 클럭 펄스의 주기는 10ns를 갖기 때문에 10bit Counter으로 분주화하게 되면 10ns * 1024 = 10240ns = 10us 을 주기를 갖는 새로운 펄스파를 생성시킬 수 있다.=> Basys3의 기본 Clock Pulse의 주기는 10ns를 갖는다.=> 10bit Counter로 1024분주하면 10us 주기를 갖는 펄스파형을 생성시킬 수 있다,=> 21bit Counter로 2^21분주하면 1..

1. Prescalerbasys3의 기본 Clock Pulse의 주기는 10ns를 갖는다.짧은 주기를 갖는 Clock pulse를 가지고 이보다 긴 펄스파형을 생성하거나 낮은 주파수를 갖는 파형을 생성하고 싶을 때, Prescaler 기법을 사용할 수 있다.Prescaler의 주요 기능에 대해서 요약하면 다음과 같다.▶ 고주파 클럭 신호를 낮은 주파수를 갖는 신호로 변환하고자 하는 경우▶ 짧은 주기를 갖는 클럭 신호를 상대적으로 더 긴 주기를 갖는 신호로 변환하고자 하는 경우▶ 입력 클럭 주파수를 일정한 비율로 나누고자 하는 경우 Q) Prescaler 기법은 어떻게 기본 Clock Pulse를 주기가 더 긴 파형으로 변환할 수 있는가?A) 여러 개의 펄스 파형을 하나의 묶음으로 묶은 뒤, 이를 하나의 ..
1. SRAM 8bit PIPO Register를 1024개 엮어서 8192bit = 8kbit 크기를 갖는 레지스터를 생성해보자.8bit PIPO Register 자료형을 갖는 배열을 생성하고, 배열의 사이즈를 1024개 갖도록 한다.1024개의 레지스터 중에서 하나의 레지스터를 선택하기 위해서 10bit 크기를 갖는 Selector가 필요하다.10bit Selector를 통해 해당 레지스터에 접근하여 Read / Write 작업을 수행 할 수 있다. module SRAM_implemented_with_D_Flip_Flop( input clk, enable, reset_p, input read_enable_p, write_enable_p, input [9:0] memory_address..

1. PIPO Shift Register (Parallel Input Parallel Output)병렬 형태로 데이터를 입력 받아 저장하고, 레지스터에 저장된 데이터를 병렬 형태로 출력받는 구조를 갖는 레지스터따라서 아래와 같이 게이트 레벨에서 회로를 구성할 수 있지만, 심각한 문제점을 갖는다. 문제점으로 지적되는 부분은 "WR 단자 값이 0일 경우, AND Gate으로 인해 Register를 구성하는 D Flip Flop의 입력값, D로 0이 들어가게 되고, 그 결과 Register에 저장되어 있던 데이터가 사라진다." 이다.따라서 문제점을 해결하기 위해서 " WR 단자 값이 1일 때는 외부로부터 데이터를 입력 받아 레지스터에 저장하고, WR 단자 값이 0일 때는 외부로부터 데이터를 입력 받지 않고,..

1. PISO Shift Register (Parallel Input Series Output)병렬 형태로 입력 값을 입력 받아 레지스터에 저장한 뒤, 레지스터의 저장된 데이터를 Shift시켜 직렬형태로 하나씩 출력시키는 구조를 갖는 레지스터PISO Shift Register는 아래와 같은 회로 구조를 갖는다. Q) 입력 단자 부분에 왜 MUX가 있으며, MUX는 어떤 역활을 수행하는가?A) PISO Shfit Register가 Read로 동작할 때와 Write로 동작할 때의 경우의 수로 나누어 생각해야한다.Write 로 동작할 경우)- 4bit 데이터를 한 번에 Parallel 형태로 입력받아야 한다.Read 로 동작할 경우)- 출력선 하나이기 때문에 D Flip Flop A부터 D Flip Flop..

1. 4bit SISO Register에서 4번째 F/F부터 데이터 값, d를 Store 하는 SISO Shift Register4bit SISO Regster에서 마지막 Flip Flop부터 Store하게 된다.4bit SISO Register의 첫 번째 Flip Flop에서 Shift되어 데이터 출력되어 나온다. module Reversed_SISO_Shift_Register_by_using_parameter_n #(parameter N = 8)( input clk, enable, reset_p, input d, output q ); reg [N-1 : 0] siso_reg; always @(negedge clk or posedge reset_p) begin..