본문 바로가기

전체 글24

vivado, FPGA를 이용해서 시계(TimeClock)만들기 이번시간에는 회로들을 연결해서 FPGA의 FND로 Timeclock을 만들어보겠습니다. 두가지를 진행하였습니다. 첫번째는 milisec, sec만 출력하기, 두번째는 스위치를 작동하여 milisec or sec를 출력하거나 min과 hour을 출력하여 보여줍니다. 클럭 2개와 inclk가 1일때 fndData가 1110에 들어가는것을 볼수있습니다. 이를통해 잘 검증되었다고 알수 있습니다. 두번쨰로 4x1의 Mux를 하나 추가해서 clockdiver와 counter에 연결한모습입니다. 이를통하여 min hour을 출력할 것인지 milisec sec를 출력할것인지 결정을합니다. `timescale 1ns/1ps //-------- module clk_1Mhz(in_clk, in_reset, out_clk);.. 2023. 5. 10.
Vivado, FPGA로 upcounter 만들기 Xillinx의 Vivado를 이용하여 FPGA에 프로그램을 올려 Counter를 만들어보겠습니다. 먼저 첫째로 0~9까지 카운트를 하는데 스위치를 이용하여 fnd의 위치에 따라서 켜지게 해보겠습니다. counter를 만들기위해 clk, counter, fnd_decoder, dec 2x4모듈을 만들어 합치는 작업을 합니다. module clk_1Mhz(in_clk, in_reset, out_clk); input in_clk, in_reset; output out_clk; reg out_clk = 0; reg [31:0] count = 0; always@(posedge in_clk or posedge in_reset) begin if(in_reset) begin count 2023. 5. 9.
반감산기를 이용해 전감산기를 만들기 일단 감산기를 만들기전에 컴퓨터는 뺄셈을 하기위해 2의 보수를 사용합니다. 예를들어보겠습니다. 8의 이진수 표현은 00001000입니다. 2의 보수를 취하기 위해, 우선 모든 비트를 반대로 바꿔줍니다. 즉, 00001000이면 11110111이 됩니다. 그리고 이 수에 1을 더해줍니다. 11110111 + 00000001 = 11111000 따라서, -8의 2의 보수는 11111000입니다. X Y D B 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 반감산기 진리표에 따라서 다음과같이 RTL을 만들어보았습니다. module half_subtractor (half_a,half_b,difference,borrow); input half_a, half_b; output difference, bor.. 2023. 5. 8.
반감산기, 전감산기 , 4bit 전감산기 만들고 전감산기 테스트벤치로 검증하기. 이번 글에서는 반감산기, 전감산기 , 4bit 전감산기 만들고 전감산기 테스트벤치로 검증을 해보겠습니다. module half_subtractor (half_a,half_b,difference,borrow); input half_a, half_b; output difference, borrow; xor(difference, half_a, half_b); and(borrow, half_a, ~half_b); endmodule module full_subtractor(full_a,full_b,borrow_in,difference_out, borrow_out); input full_a,full_b, borrow_in; output borrow_out, difference_out; wire ha1_ha2_dif.. 2023. 4. 24.