no image
[Virtuoso] 2NOR
오늘은 2NOR GATE를 만들어 TEST 까지 진행하도록 하겠습니다.2NOR2NOR Schematic과 Symbol을 위와 같이 구성합니다. 아래의 nMOS의 Width는 1um, 위의 pMOS의 Width는 'WIDTH'라는 변수로 주어서 Vin/Vout 그래프를 보고 적절한 값을 확인하도록 하겠습니다. VIN, VOUT 그래프를 통해 WIDTH를 특정할 수 있습니다.
2024.04.30
no image
[Verilog] 7. 교통신호기 FSM
교통신호기 다시 FSM을 이용하여 RED, GREEN, YELLOW가 있는 신호등을 만들어 볼 것입니다. PED는 보행자가 요청하면 건널 수 있는 스위치를 설치한다는 가정입니다. 각각의 신호의 시간 계산을 따로하지 않고 하나의 함수를 이용하여 계산을 진행할 예정입니다. my_signal`timescale 1ns / 1psmodule my_signal( input RST, input CLK, input [6:0] time_slot, input start, output [6:0] curr_slot, output done ); parameter CLK_FREQ = 125_000_000;wire [29:0] MAX_CNT = time_slot + CLK_F..
2024.04.29
no image
[Verilog] 6.FSM Security
FSM Security저번에 포스팅한 FSM을 이용한 Security를 만드는 Verilog code를 만들어 보겠습니다.2개의 블럭을 만들어 연결하는 방식으로 Hardware를 구성해 보겠습니다.my_fsm_sec`timescale 1ns / 1psmodule my_fsm_sec #(parameter CLK_FREQ = 125_000_000) // parameter로 CLK_FREQ 지정( input RST, input CLK, input [1:0] KEYPAD, input SENSOR, output reg [1:0] FSM_state, output reg Alarm_sys ); localparam [1:0] disarmed = 2'b..
2024.04.29
no image
[Verilog] 5. FSM Demo.
FSM(Finite State Machine)  FSM, 즉 유한상태머신은 지정된 수의 상태 변화에 따라 출력을 조절하는 머신입니다.input과 현재상태에 따라 output을 출력하는 Next state logic, 현재 상태를 저장하는 State Register, 입력과 현재상태에 따라 출력을 선택하는 Output Logic으로 구성됩니다. 저는 Switch와 LED를 통해 입력과 출력의 변화를 확인하도록 코드를 작성할 것입니다.FSM Code`timescale 1ns / 1psmodule my_fsm( input RST, input CLK, input [1:0] SWT, output reg [1:0] LED, output VCC //output GND ); ..
2024.04.26
no image
[Virtouso] CMOS Inverter(NOT Gate)
CMOS Inverter(NOT Gate)NOT Gate는 아래와 같은 회로로 구성됩니다.위에는 pMOS 아래에는 nMOS를 배치하여 입력을 반전시켜 출력합니다.A에 0을 입력하면 pMOS는 On, nMOS는 OFF 됩니다. 따라서 출력단인 Y와 VDD가 연결되기 때문에 1로 출력됩니다.A에 1을 입력하면 pMOS는 OFF, nMOS는 ON 됩니다. 따라서 출력단인 Y와 GND가 연결되기 때문에 0으로 출력됩니다.Inverter의 심볼과 진리표입니다.이제 위의 회로를 Cadence Virtuoso를 이용하여 구성하겠습니다. Virtuoso 먼저 위의 회로도와 같게 pMOS와 nMOS를 배치하고 입력으로 VIN, VDD, VSS를 구성합니다.나오는 출력은 VOUT으로 잡았습니다.(pMOS의 W가 2.91u..
2024.04.25
no image
[OrCAD] 0. Pspice 프로젝트 생성
Pspice 오늘은  OrCAD Pspise 프로젝트 생성 방법에 대해 말씀드리겠습니다.우선 Capture CIS Lite 프로그램을 설치 후 실행합니다. 여기서 프로젝트로 가지 않고 Start page 우클릭 후 Close 해줍니다.상단 메뉴에서 'File' 'New' 'Project'를 사용하여 새 프로젝트를 생성합니다.상단에는 프로젝트 이름과 하단에는 저장 위치를 지정해 줍니다.시뮬레이션 기능을 이용한다면 가장 위에 위치한 'PSpice Analog or Mixed A/D'를 선택합니다.도면만 제작한다면 'Schematic'을 이용하여 작성할 수 있습니다.이름과 파일경로에는 영어, 숫자, _(언더바)만 가능합니다. 이외의 한글이나 특수문자 등이 들어간다면 오류가 발생할 수 있습니다.빈 프로젝트를 생..
2024.04.03
no image
[Verilog] 4. 1 Sec Counter- (Cora-z7)
1Sec Counter 설계설계 요구사항- RST = 1일 경우 LED off, RST = 0일 경우 1초 마다 LED on/off- 내부 counter를 설계하여 1초마다 enable 되는 신호 생성 enable 신호를 이용하여 출력을 반전 시키는 회로 설계  `timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////module my_1sec( input RST, input CLK, output reg LED ); parameter clk_freq = 125_000_000;reg enable;reg [31:0] cnt;always @(posedge CL..
2024.04.01
no image
[Verilog] 3. Counter / Testbench- (Cora-z7)
Counter 설계설계 요구사항- CLK의 상승 Edge마다 up_down 신호가 High면 내부 32bit Counter가 증가, Low면 감소- 상위 3bit를 LED를 활용하여 출력 동작 확인`timescale 1ns / 1psmodule my_count( input RST, input CLK, input DIR, output [2:0] LED ); reg [31:0] cnt; //32bit register로 cnt 값 저장 assign LED = cnt[31:29]; // cnt의 상위 3 bit LED 출력으로 할당 always @(posedge CLK) // CLK 의 신호 상승 Edge가 감지될 때마다.begin if(R..
2024.04.01
no image
[ATmega 128] 3. 7 Segment 타이머 만들기.
자주 보던 디지털 시계, 이것을 7 Segment라고 합니다. 자릿수에 따라 7개의 Segment 표시 장치가 존재하기 때문입니다.7 Segment7 Segment는 양극형, 음극형으로 나뉩니다.또한 Segment 사용을 위해서는 위와 같은 제어값을 활용하여 값을 출력할 수 있습니다.     위와 같이 회로를 구성합니다.저는 그림과 같게 C와 D Port를 이용하여 7 Segment를 연결했습니다. Interrupt를 이용하여 타이머에 변화를 줄 것입니다.각각의 스위치는 Interrupt를 발생시킵니다. E Port의 4, 5, 6번을 왼쪽부터 연결하여 사용하였습니다. 각각의 Interrupt가 발생하면 특정 변수에 변화를 주는 방식으로 프로그래밍을 진행하였습니다.  4번(좌)은 시작/멈춤 그리고 5번(..
2024.03.29