일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- T flip flop
- STM32
- single copy atomic size
- cacheable
- QoS
- APB3
- Verilog
- ABMA
- Low-power Interface
- 펌웨어
- stepmotor
- Multiple transaction
- atomic access
- tff
- ordering model
- AMBA
- AXI4
- 스텝모터
- AXI3
- 임베디드시스템
- FGPA #반도체설계 #verilog #시프트레지스터 #uart
- SoC
- 레지스터슬라이스
- Multiple outstanding
- 카운터
- FPGA
- out-of-order
- Interoperability
- 구조적모델링
- ERROR RESPONSE
- Today
- Total
목록반도체 (24)
CHIP KIDD
1. Multiplexer module mutiplexer_8_1( input [7:0] D, input [2:0] S, output Y ); wire Sbar0, Sbar1, Sbar2; wire [7:0] w; not (Sbar0, S[0]); not (Sbar1, S[1]); not (Sbar2, S[2]); and (w[0], D[0], Sbar2, Sbar1, Sbar0); and (w[1], D[1], Sbar2, Sbar1, S[0]); and (w[2], D[2], Sbar2, S[1], Sbar0); and (w[3], D[3], Sbar2, S[1], S[0]); and (w[4], D[4], S[2], Sbar1, Sbar0); and (w[5], D[5], S[2], Sbar1, S..
동작점 모델링 if 내부의 조건을 만족하면 실행문 실행 --> 4bit, 8bit로 키워가도 똑같이 해주면되므로 동작점 모델링이 편하다. 반면에 Adder는 half adder를 붙여서 만들어가기 때문에 구조적 모델링 방법이 편리하다. module comparator_2bit( input [1:0] in1, input [1:0] in2, output reg less, output reg equal, output reg bigger ); always @(in1 or in2)begin if (in1 == in2)begin equal = 1; less = 0; bigger = 0; end if (in1 > in2)begin equal = 0; less = 0; bigger = 1; end if (in1 < i..
위아래 덧샘 후 led 전등 module fadder( input x, input y, input cin, output sum, inout cout ); wire s0, co0, co1; hadder ha0 (x,y, s0, co0); hadder ha1 (cin, s0, sum, co1); or u0 (cout, co0, co1); //assign sum = x^y^cin; //assign cout = (x&y)|(x&cin)|(y&cin); endmodule module fadder_4_bit(Cin, X, Y, Sum,Cout); output Cout; output [3:0]Sum; input Cin; input [3:0]X,Y; wire c0,c1,c2; fadder adder0(X[0], Y[0..
이번장은 ADC모듈을 이용하여 , 6번 채널을 통해서 가변저항의 값을 10진수로 출력하겠습니다. module channel6_ADC( input clk, input vauxp6, vauxn6, output [3:0] com, output [6:0] seg_7 ); wire clk_usec, clk_msec; wire [3:0] hex_value; wire [4:0] channel_out; wire eoc_out; wire [15:0]do_out; wire [3:0] ones, tens, hundreds, thousands; clock_usec G_usec (.clk(clk), .clk_usec(clk_usec)); clock_msec G_msec (.clk_usec(clk_usec), .clk_msec(..
ADC 는 아날로그 회로라 FPGA로는 설계가 불가능하다. 하지만 zybo 보드는 ADC하날로그 회로를 제공한다. 이번에는 ADC Mux 를 설계하겠다. ADC는 8개의 채널과 연결되어있다. 예를들어 각 채널마다 습도, 온도, 조도등으로 값을 읽어올 수 있도록 설계가 되어있다면 , ADC는 여기서 하나의 채널만 output으로 출력시킨다. 그럼 이런 기능을 해주는게 뭘까? 바로 Multiplexer이다. 즉 ADC MUX 는 8개의 채널중 하나의 채널을 output으로 뽑도록 해주는 모듈이다. 먼저 세팅하는 거부터..! 지보마스터에 들어가면 JA 단자에 ADC 포트가 따로 있다. 여기서 포트를 오픈 IP 소스를 누르면 vivado에서 제공하는 xadc IP가 있다. 들어가서 위 코드를 복사하여. ADD ..
카운트다운 모듈 동작 목표 1) 1번버튼을 누르면 초단위 UP 2) 2번버튼 누르면 min단위 UP 3) 3번버튼 누르면 Reset 초기화 4) 4번 버튼 누르면 Count Down 시작 + 카운트 다운중에 0이 되면 자동으로 동작 멈추고 0으로 고정되며 불이켜짐 Dflipflop : 버튼의 채터링 방지 Tflipflop : T가 1일때, Clk에 어떤 값을 입력하면, 버튼 처럼 Toggle 되는 Output을 낼때 + 리셋값이 들어오면 출력값을 안내도록 할때 아래 코드를 보면 T1까지 기본 타이머 구현이고, 그 이후는 0값이 되면 카운트 다운이 자동으로 멈춰 0으로 초기화 하고, LED가 켜짐을 나타내는 코드 module cook_timer_module( input clk, input [3:0] btn..
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..