게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
혹시 베릴로그 아시는분 계실까요? [본삭금]
게시물ID : programmer_13800짧은주소 복사하기
작성자 : LUminary
추천 : 0
조회수 : 1474회
댓글수 : 2개
등록시간 : 2015/10/11 20:38:54
옵션
  • 베스트금지
  • 본인삭제금지

always@(posedge clk , negedge rst)begin
if(~rst)begin // 리셋버튼 누르면 
regist_bit1 <=8'd0; //입력값 초기화
regist_bit2<=8'd0;
end
else if(clk)begin 
if(~clk_store) begin
regist_bit1<=SW;
clk_store = 1'b1;
end
else if(clk_store)begin
regist_bit2<=SW;
clk_store= 1'b0;
end
end
end
먼저 SW변수로 보드의 스위치 입력값을 받습니다. 

그리고나서 Key버튼을 누르면 rising edge일때 always문이 실행되고 

 else if문으로 넘어갑니다. 초기 clk_store값은 0이므로 regist_bit1 에 스위치 입력이 들어가고 

다시 1로 바꿔줍니다. regist_bit1은 HEX0의 7segment에 출력되도록 하였습니다. 

다음 key버튼을 누르면 clk_store값이 1이므로 regist_bit2에 스위치값이 저장되고 

그결과 HEX1에 입력한 스위치의 값이 뜨도록 하였습니다. 

그렇게 clock형식으로 버튼 누를때마다 HEX0에 입력값 출력, HEX1에 입력값 출력은 잘되긴합니다..

그런데 어느순간 한번눌렀는데 갑자기 HEX0, HEX1 동시에 입력한 값이 출력되더라구요.. 어찌된일인가

버튼이 동시에 두번눌린건가 수백번 테스트를해봐도 10번에 1~2번 꼴로 이런현상이 나타납니다...

도대체 코드상으로는 문제가 없는거 같은데 무슨 이유인지 몰겠네요.. 혹시 아시는분 계실까요?
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호