[Harman] 세미콘(semiconductor) 아카데미-반도체설계(32)
-
Full Custom IC One Chip 1
아날로그 : 연속적인 값 (노이즈의 영향을 많이받는 영역) 디지털 : 0과 1로 이루어진 값(타이밍 영역에서 노이즈에 영향을 받지않는 0과 1의값) ASIC - 이미 설계되어있는 칩에 디자인을 하는 것 본 강좌는 이미 설계된 칩이 아닌 직접 칩을 설계하는 것 반도체 공정에서 몇 나노공정에서의 나노에 해당하는 것은 length이다. souce - drain사이의 폭을 length라 한다 -> length 줄어들면 낮은 전압으로도 스위칭할 수 있게 된다. 좀더 도통시키는 전압이 줄어들게된다. -> 2nm이하로는 의미가 없다(배터리가 커져있는상태로 반도체칩을 작게 개발해도 의미가 없기 때문이다.) supply voltage가 Yield소스드레인이 너무 가깝기때문에 쇼트날 수도 있다. ASML장비가 받쳐주지 않..
2023.07.10 -
교통신호등 제어기 설계
교통신호등 제어기 설계 timescale 1ns / 1ps module TrafficLightController( input clk, reset, standby, test, output reg [6:0] FND, output reg G1en, Y1en, R1en, G2en, Y2en, R2en ); parameter YY=3'b000, RY=3'b001, GR=3'b010, YR=3'b011, RG=3'b100; // 상태에 대한 매개 변수 정의 reg [2:0] state=YY; // 현재 상태 레지스터 parameter RGTime=10, RYTime=3, GRTime=15, YRTime=3, TESTTime=2; // 각 상태의 지속 시간을 정의하기 위한 매개 변수 정의 integer TimeCnt..
2023.06.30 -
레지스터, 시프트 레지스터, 시프트 레지스터, up-down 카운터
레지스터 베릴로그에 의한 레지스터의 구현 방법 클럭이 있는 순차회로 = 플립플롭과 조합게이트로 구성 플립플롭이 없으면 조합회로만 구현 가능 플립플롭만 구성된 회로의 경우 조합논리게이트 없더라도 순차회로로 간주 플립플롭을 포함하고 있는 회로는 순차 회로라는 명칭 뿐만 아니라 수행하는 기능에 의해 레지스터와 카운터로 분류 레지스터 = 플립플롭들로 구성되며 각 플립플롭은 클럭을 공유하고 한 비트의 정보를 저장 가능 n비트 렞니스터는 n개의 플립플롭으로 구성되고 n개의 비트를 가지는 2진 정보를 wjwkd 카운터 입력이 가해짐에 따라 상태를 미리 정해진 순서대로 진행시키는 레지스터 카운터의 게이트는 레지스터에서 2진상태를 정해진 순서대로 만들어둔 것 래치 임시저장장소의 한 종류로서 두 개의 안정 상태를 가지고 ..
2023.06.23 -
리플 가산기
`timescale 1ns / 1ps module RippleCarryAdder( input [3:0] a, input [3:0] b, output [3:0] sum, output [3:0] c ); HalfAdder HA1(a[0], b[0], sum[0], c[0]); FullAdder FA2(a[1], b[1], c[0], sum[1], c[1]); FullAdder FA3(a[2], b[2], c[1], sum[2], c[2]); FullAdder FA4(a[3], b[3], c[2], sum[3], c[3]); endmodule module HalfAdder( input a, input b, output sum, output carry ); assign sum = a ^ b; assign car..
2023.06.22 -
FND, 가산기, 감산기
BASYS3의 [W4 V4 U4 U2]는 P타입 BJT이므로 BASE에 LOGIC 0을 줘야 PNP BJT가 도통되어 FND에 신호가 인가된다. EXAMPLE3 `timescale 1ns / 1ps module clockDivider( input clk, input reset_n, output reg clk100Hz ); reg [25:0] cnt = 0; always @(posedge clk or negedge reset_n) begin if(!reset_n) begin cnt
2023.06.16 -
FND&디코더
우리가 사용하는 보드(BASYS3)의 FND는 4개 존재 이 FND를 개별로 사용하려면 counter를 이용하여 각각 다른 시간의 값을 FND에 부여해야 개별로 사용가능 Clock Div -> Counter -> MUX -> Decoder & FND EXAMPLE 1 `timescale 1ns / 1ps module FNDSEL( input clk, input [1:0] fndselin, output reg [3:0] out ); always @ (posedge clk) begin case (fndselin) 2'b00 : out = 4'b1110; 2'b01 : out = 4'b1101; 2'b10 : out = 4'b1011; 2'b11 : out = 4'b0111; endcase end endmod..
2023.06.15