Verilog에서는 Digital로 Analog회로 만드는것은 불가능하기떄문에 Basys-3의 XADC를 활용함!


dclk_in과 reset_in은 clk과 reset_p이 들어간다. 이 예제에서는 가변저항의 전압을 아날로그 신호로 받습니다. 이 신호를eoc_out이 디지털 신호로 전환해주고 이 작업이 완료되면 den_in에서 완료가 되었다고 신호를 보냅니다(아날로그 -> 디지털 전환 작업이 완료되면 enable신호가 1이됩니다.) enable신호를 받게되면 do_out에서 전환된 값을 출력합니다. 그리고 channel_out이 활성화되면서 채널을 선택하여 출력된 값을 선택한 채널로 내보내게 됩니다. 이 channel_out 에서 출력한 신호는 현재 우리가 한개의 채널을 쓰고 있지만 다양한 채널들이 있습니다 그래서 channel_out을 이용해서 원하는 채널을 선택하여 do_out에서 출력 된 값이 전달됩니다. 그리고 channel_out에 전달된 값을 daddr_in에 저장합니다. 그리고 앞에 2개의 비트를 0으로 받은 이유는 daddr_in은 7비트이지만 channel_out 은 5비트이기 때문입니다. 그리고 최종적으로 daddr_in에 저장된 값이 JXADC핀을 통해 외부로 출력할 수 있습니다. 



PWM의 duty로 전달하여 Basys-3의 LED의 밝기를 조절할 수 있습니다.