본문 바로가기

acc4

[FPGA Project] CPU 구현 프로젝트(ALU, ACC, PC, MAR, MDR, ROM, Control Block, Data Bus) [Mission] 📌 Project Summary Project name : FPGA환경에서 Verilog 언어를 통한 4bit CPU 구현 프로젝트 Mission i) 실제 CPU와 같이 Fetch-Decode-Execute- Writeback 사이클을 반복하여 연산하도록 구현 ii) 사칙연산, 논리연산 iii) 시프트연산, 비교연산 iv) 테스트벤치 작성을 통한 시뮬레이션으로 기능 검증 프로젝트 기간 및 팀원 기간 : 4 Days 팀원 : 1명 [Result] 📌 Operation 📌 Function & Block Diagram ✅ 연산 파트 : 사칙연산, 논리연산, 시프트연산, 비교연산을 수행합니다. - ALU : 각 연산의 명령어(op_sub, op_and 등)와 ACC와 BREG에 저장된 데이터.. 2023. 11. 8.
[Harman 세미콘 아카데미] 74일차 - Verilog(Program Counter, Register, Control Block, ROM, CPU Simulation) [Program Counter] 이전 시간에 만든 N bit Half adder를 활용하여 Program counter를 만들어보자. 프로그램 카운터는 위 그림처럼 조합 회로를 구현한 LUT과 Register를 구현한 DFF로 구성되어 있다. (조합회로에 clk 신호를 받는 DFF를 연결하여 순차적 기능 부여) 📌 Code module register_Nbit_p_alltime #(parameter N = 8)( input [N-1:0] d, input clk, reset_p, wr_en, rd_en, output [N-1:0] register_data, // 상시 출력 output [N-1:0] q ); reg [N-1:0] register_temp; always @(posedge clk or pose.. 2023. 10. 16.
[Harman 세미콘 아카데미] 73일차 - Verilog(ACC / ALU Simulation, Program Counter) [ACC Simulation] 📌 Testbench module tb_acc(); reg clk, reset_p, acc_high_reset_p; reg fill_value; // 안 쓰는 비트를 0으로 채우거나 1로 채움 reg rd_en, acc_in_select; reg [1:0] acc_high_select, acc_low_select; // Half_ACC가 두 개이므로 구분해줘야 한다. reg [3:0] bus_data, alu_data; // BUS와 ALU로부터 받는 데이터 wire [3:0] acc_high_data2bus, acc_high_register_data; wire [3:0] acc_low_data2bus, acc_low_register_data; acc DUT(clk, res.. 2023. 10. 15.
[Harman 세미콘 아카데미] 69일차 - Verilog(4x4 keypad, 4bit CPU 개요, ALU, ACC) [4x4 Keypad] 📌 4x4 keyboard 구상 4x4 keypad를 만들어 보자. 키패드도 일종의 버튼들의 모음이므로, 풀다운 또는 풀업을 적용시켜줘야 한다. 우리는 버튼을 누른 순간 동작시키는 풀업을 시용하도록 하자. row이든 col이든 둘 중 아무거나 하나는 input잡고 다른 하나는 output으로 잡으면 된다. 단, input에 풀업 저항을 셋팅해줄 것. 키패드의 어떤 버튼이 입력되었는지 스캔하는 기능은 FND에서 잔상효과 사용하듯이 설계할 것이다. 16개의 키 스캔하는데, 약 4ms가 걸리고, 사람이 버튼을 동작시키는데 최소한 4ms 이상은 걸리니까 다음 버튼의 입력까지의 시간은 충분하다. 포트를 절약하기 위해서 array를 만들어서 사용한다. 📌 Code module key_pad_.. 2023. 10. 7.