일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ABMA
- AMBA
- T flip flop
- 레지스터슬라이스
- stepmotor
- 구조적모델링
- STM32
- Low-power Interface
- cacheable
- QoS
- tff
- FGPA #반도체설계 #verilog #시프트레지스터 #uart
- SoC
- ERROR RESPONSE
- Verilog
- AXI4
- 펌웨어
- out-of-order
- Multiple transaction
- atomic access
- FPGA
- single copy atomic size
- 임베디드시스템
- ordering model
- 스텝모터
- Interoperability
- 카운터
- Multiple outstanding
- APB3
- AXI3
- Today
- Total
목록반도체/FPGA - Verilog (18)
CHIP KIDD
clk 신호에 맞춰 카운터 하는것을 생각해보자, 그렇다면 1초마다 생성되는 clock 신호에 맞춰 카운트가 된다고하면, 자연스럽게 1초간격으로 값이 올라가는 시계를 만들수 있다. 다음은 clk 신호에 맞춰 카운트 다운/업 하는 code이다. module counter_up_down( input up_down, input up_down_clk, input reset, output reg [3:0] count_100 = 0, output reg [3:0] count_1000 = 0, output reg dec_clk = 0 ); always @(posedge up_down_clk or posedge reset) begin if(reset) begin count_100
FND Switcher를 통해서 자리에 대한 Data가 나왔다면, FND에 나타낼 숫자에 대한 Date가 필요하다. Switcher에서 Hex_Value라는 숫자 Data가 생성이 되지만, 사실 UP_Down_counter에서 자리위치 뿐만아니라 숫자에 대한 정보가 Output으로 나온다. FND Swicher에서 4bit 의 COM과 Hex_Value가 나온다. 4자리 자리수를 나타내기에는 4bit는 충분하지만, 1부터 10까지 나타내는데 있어서 7bit의 이진숫자가 존재한다. 따라서 4bit로 도출된 Hex_Value 를 7bit의 2진수로 풀어야하는데 이런 기능을 하는게 Decoder 이다. 따라서 다음은 7segment를 위한 Decoder의 코드이다. module FND4digit_switche..
prescaler를 통해서 나눠진 단위 clock들에 맞춰 Up/Down Conuter모듈을 지나 생성된 초분시에 대한 Data는 4bit의 COM[0:3] 출력으로 나온다. 이 COM 출력은 4자리의 FND출력의 자리를 나타내는 Data이다. 따라서 이 자리수 데이터 값을 나타내는 FND Switcher 코드는 다음과 같다. module FND4digit_switcher( input [3:0] value_1, input [3:0] value_10, input [3:0] value_100, input [3:0] value_1000, input clk_msec, output reg [3:0] com, output reg [3:0] hex_value ); always @(negedge clk_msec) be..
Block Diagram 먼저, FPGA zybo 에서 제공하는 CLOCK (125Mhz) 을 usec, msec, sec 단위등으로 나눠, 단위별로 카운터하는데 필수가 되는 모듈입니다. 1. Prescaler (clk / usec_clk / msec_clk / csec_clk / sec_clk ) module clock_usec(input clk, output reg clk_usec); reg [6:0] cnt_clk; always @(negedge clk) begin cnt_clk = cnt_clk + 1; if (cnt_clk > 124) cnt_clk = 0; if (cnt_clk > 63) clk_usec = 1; else clk_usec = 0; end endmodule module clock..
Stop Watch 도 Timer와 마찬가지로 다음의 구조로 이루어져 있습니다. up_down_controller를 어떻게 설계하느냐에 따라 Timer가 될수도있고 Stop Watch가 될 수 있습니다. Stopwatch_module 회로를 다음과 같이 설계하였습니다. 버튼 1번 : Count Up 버튼 3번 : Reset 따라서 위 두개의 설계도를 기반으로 설계를 한 결과물 입니다. 아래는 StopWatch Module Verilog Code 부분입니다. module stop_watch_module( input clk, input [3:0] btn, output [3:0] com, output [6:0] seg_7 ); wire up_down = 0; wire [3:0] csec_1, csec_10, ..
Xilinx 사에서는 FPGA를 설계하기위한 Tool로써 Vivado를 제공합니다. 이번시간에는 Vivado Tool 사용 매뉴얼을 작성해 보겠습니다. FPGA 설계 과정은 크게 다음과 같습니다. 코드 작업을 합니다. 이때 사용도는 언어의 종류를 HDL(hardware description language)라 부르며 주로 VHDL이나 Verilog 가 사용됩니다. 주로 현장에서는 Verilog가 많이 사용되기 때문에 Verilog를 이용하겠습니다. 또한 Verilog 는 C기반 언어 입니다. Constraint 설정, Zybo master 라는 파일을 이용해서, 포트설정하는 단계입니다. 시뮬레이션만 진행할경우 필요없지만, 실제 회로에 동작시켜야 할경우 해줍니다. 작성한 HDL을 RTL Simulation..
용어정리 순차논리회로 : 플립플롭, 래치 --> 메모리를 이용하여 데이터 저장 가능 조합논리회로 : 논리 게이트, mux/demux, decoder/encoder 동기식 비동기식 회로 차이 : 동일 CLk을 이용한 회로 → 동기식, 각각의 다른 clk을 이용한 회로 →비동기식 카운터는 무수히 많은 곳에 사용된다. 시계뿐만 아니라, 수를 계산하고, 순서를 계산하고, 인터럽터, 번호표 등 매우 많은 곳에 사용된다. 따라서 이번시간에 카운터 모듈을 만들어 보고자 한다. 재활용이 가능한 카운터를 구조적 모델링을 통해 만들어 보고, 더나아가 뒤에있을 구조적 모델링을 통한 시계를 만들어보자. T Flip Flop : T에 신호가 들어올때 출력 toggle( 초기값 필요 → Q = 0) 시뮬레이션 결과를 보면 CLK..
itrustme.tistory.com/entry/FPGA%EC%99%80-ASIC%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90 FPGA와 ASIC의 차이점 FPGA와 ASIC의 차이점은 생각보다는 쉽습니다. FPGA와 ASIC의 설계방법은 비슷합니다.먼저 언급드린 것처럼 VHDL이나 회로를 ORCAD에서처럼 직접 그리는 것을 일컫는 스키메틱 캡쳐 방식등을 이용해서 itrustme.tistory.com 오래된 글이지만. 이해하기가 쉬워서 링크걸었습니다. 문제 시 삭제하겠습니다.