FPGA/Verilog (=VHDL)

Verilog HDL (FPGA)예제들

ElectricShock 2016. 5. 11. 12:04

FPGA과제의뢰는

댓글로 남겨주세요 (질문댓글도 환영입니다.)

(★대체로 2주정도 남겨놓고 오시던데 과제 나오기전에 미리미리 문의주세요)()

(카톡, 이메일 남기지마세요 <<< 보통 답변오는데 하루넘게 걸려서 무슨대화 했었는지도 까먹습니다.)

(번호남겨주셔야 대화하기 편합니다.)

카톡대화하실분은 여기로 오세요(제가 카톡을 거의 안합니다.)

▼연락처남기는거 극도로 꺼려하는분들을 위한 링크 (마이크 쓰시거나 타이핑하거나 편하신대로)

(여기 칠판에 넘겨놓으시면 시간날때 천천히 가겠습니다............몇일걸릴지 장담못함)

(https://app.gather.town/app/rnmC5R9rtP5QeptG/aa)

전 2-5 집무실에 점심때만 한시적으로 있습니다. (아래 우주선 참고)

나머지시간엔 4-6 집무실 건너편에 있는 Cafe옆 정원 분수대의 Teleport를 타고갈수 있는 별도 집무실에서 미팅합니다.

 

 

 

▼비용문의 많이 오는데 장난치는분이 많아서 OBSR로 받겠습니다.

OBSR Wallet

https://www.a-ha.io/ ◀여기에서 추천인으로 저 부탁드립니다.

회원가입후 (▶LINK)여기 하단의 추천인을 입력해주시면 됩니다.

1DFC

 

 

 

Naver[VHDL doorlock 예제]

 

naver[verilog 논리식]

 

naver[verilog reset] 

 

naver[mealy회로 moore]

 

naver[mealy moore 상태도]

 

naver[icarus verilog]

 

naver[verilog 예제]

 

naver[verilog forever]

 

naver[카르노맵 예제]

 

naver[verilog 주차장]

 

naver[VHDL doorlock 예제]

 

 

 

 

google[베릴로그 예제]

 

 

 

 

연세대 전자과 과제(21.04.16.Fri)

 

 

 

 

 

 

 

http://bleyer.org/icarus/

 

설치용량 51.8MB (13MB(기본) + 3.6MB(MinGW 라이브러리) + 34.7(GTKWave)

iverilog-10.0-x86_setup.vol1.egg
다운로드
iverilog-10.0-x86_setup.vol2.egg
다운로드

▲사용해보고 평가 댓글로 남겨주세요

 

library ieee;

use ieee.std_logic_1164.all;

entry boiler is

port(

sensor : in std_logic_vector(7 downto 0);

temp : in std_logic_vector(7 downto 0);

burner : out std_logic

);

end boiler;

architecture sample of boiler is

begin

process(sensor, temp)

begin

if(sensor >= temp) then

burner <= '0';

else

burner <= '1';

else if;

end process;

end sample;

 

 

 

 

 


https://gist.github.com/vividvilla/4605985

Ring Counter.txt
다운로드


ourdev_585395BQ8J9A.pdf
다운로드
9781441975478-c1.pdf
다운로드

▼19쪽

input[1:0] x 입력이 10으로 두자리이다. 변수는 x 이다.

output[2:0] out 입력이 210으로 세자리이다. 변수는 out 이다.reg[2:0] current 입력이 210으로 세자리이다. 변수는 current이다.Parameter Zero=3'000 세자리 Binary 상태 Parameterif(reset == 1) current <= Zero; 리셋이 1이라면, 현제 State를 Zero로 옮김http://www.rfwireless-world.com/source-code/VERILOG/Mealy-Machine-and-Moore-Machine-verilog-code.html

▼Taxas 대학교 보고서

Verilog HDL (2).pdf
다운로드

▼Mealy Machine의 입력값에 따른 Next State이다.

▼출력은 S0일때 입력이 0이어도 0, 1이어도 0

 



 

▼영남대 FPGA과제

 

 


EW도로가 Input

NS신호가 Output1 // EW신호가 Output2

Input이 0일때, Output1은 항상 1., Output2는 항상 0.

Input이 1일때, Output1은 녹색6초>>황색2초>>적색(forever)

  Output2는 녹색3초>>황색2초>>적색(forever)

 

상태천이도

 현재상태  입력NS  출력EW  출력NS
 RYG  Button  RYG  RYG
 001  0  001  100
   1  001  001
     010  010
     100  100
       

 

 


 

참고링크(▶LINK)

Moore : 출력이 현재상태에 의해서만 결정된다.

Mealy : 출력이 현재상태+입력 모두에 의해서 결정된다.

 

9장 20쪽 참고 (디지털 회로)

상태도>>다음상태표>>천이표>>카르노맵>>입력논리식

상태표(=State Table) :: 

 현재 상태 입력  다음 상태 출력
 A B x  A+ B+ y 
 0 0 0  0 0 0 
 0 0 1  0 1 0
 0 1 0  0 0 1
 0 1 1  1 1 0
 1 0 0  0 0 1
 1 0 1  1 0 0 
 1 1 0  0 0 1
 1 1 1  1 0 0

 

현재상태(A,B)에서 입력(x)값에 따라 다음상태(A+,B+)를 결정

현재상태  다음상태  출력
 x=0     x=1  x=0     x=1
 A B  A+ B+  A+ B+  y      y
 0 0  0   0  0   1  0  0
 0 1  0   0  1   1  1  0
 1 0  0   0  1   0  1  0
 1 1  0   0  1   0  1  0

 


>>

Port Mapping (▶LINK)

하위모듈을 일단 설정해줘야합니다.

module DEF(Q, D, CLK);	//포트들
input D, CLK;			//입력
output reg Q;			//출력
always @ (posedge CLK)	//언제나 Positive Edge(=Active High)
	Q <= D;				//D는 그대로 Q로 전달됨
endmodule

상위모둘은 하위모듈을 토대로 만들되 내부에 연결을 설정해줘야한다.

module SYNCHRO (ASYNC, SYNC, CLOCK);	//외부 Block의 입출력들 이다.
	input ASYNC;
    input CLOCK;
    output SYNC;
    
    wire C1,ASYNC;
    
    DFF DFF1(C1_ASYNC, ASYNC, CLOCK);
    DFF DFF2(SYNC, C1_ASYNC, CLOCK);
    //일전에 내부module문법이 >>모듈명(output, input, input)이었다.
  endmodule

 

홍익대 전자과

CLDCH11_revised.pdf
0.54MB

Single bus replaced by thress busses:

Memory Bus(=MBUS)

Result Bus(=RBUS)

Address Bus(=ABUS)

Simplify Wait Looping

간략히해라 Wait Looping을

Eliminate some Wait states

At this point, Wait must be asserted, so why loop on  Wait*(same loop condition, both for memory grant, Wait bar loop cond.)

요점은, Wait가 must be 유지되야한다. so 이유이다. loop가 있는 on Wait* (<< Wait가 LOW일때를 말함)

Why loop on Wait when resync will take place at state IF0* (same loop condition, both for memory grant)

 


>>

아주대

21-1_설계과제(2).pdf
0.65MB

2개의 5-bit Hand Sign

5개의 비트를 손가락으로 표시한거라고 이해하면된다.

접힌손가락은 '0', 편손가락은 '1' 

00011 이면 손가락은 두개 편거며, 엄지손사락이 LSB, 새끼손가락인 MSB에 해당한다.

Pruduct예시 :: 2*6 = 12 (0010)(◀2를2진수로표기) * (0110)(◀6을2진수로표기)

Sum 예시 :: 10+10 = 20 (1010)(◀10을2진수로표기) + (1010)(◀10을2진수로표기)

 


단국대 전자과

MOD-6

7-6-5-4-3-2 그리고 다시 7로 돌아가서 반복수행