적극적 생각/FPGA

dice_new

무말랭이 2022. 8. 16. 12:40

tb 까지는 셋팅을 완료했고

 

랜덤생성된 숫자로 표출될 수 있도록 gen을 조정해준다.

설계를 조정한다.

 

sync가 아닌 async로 만들고

delay timing을 고려해준다. 1clk 정도?

 

 

안되겠다.

난수 하려면 counter 쓰는게 편할듯해서 

async 말고 sync 로 바꿔주기는 해야할듯하다.

 

 

1부터 6까지 계속해서 카운터되는 모듈을 만들었고

 

request를 보낼때 시점에 얻어오는 것으로 하자.

 

구현하다가 느꼈는데,

request 신호는 필요 없길래 

제거했다.

 

 

um... tb그냥 바로 돌려봤는데 왜 이렇게 뜨지?

 

verilog concat 문법확인

https://class.ece.uw.edu/cadta/verilog/replication.html#:~:text=The%20concatenation%20operator%20%22%7B%20%2C%20%7D,and%20is%20known%20as%20replication.

 

Verilog Concatenation Operator

 

class.ece.uw.edu

 

신호를 잘 못끌고 오고있다.

wiring 문제인가?

metastability 문제인가?

 

 

wiring의 문제인가 싶어서

명확한 명시를 위하여

변수명을 바꾸어주었는데도 

안되네

 

왜 이 신호를 못받아오고있지?

아무리봐도 이 신호를 연결 못할 이유가 없는데?

 

그러네 지금 뭔가 이상하게 연결되어있네

top module에서 명시적 wiring을 추가로 해주었다.

 

그래도 안되는데 ground에 연결되어있어버리는게 문제인것 같다

저 그라운드는 왜 생기는거지? 뭔가 코딩을 잘못했나.

아까 그라운드가 생겼었을때 dice_controller 쪽에 생겼었는데 

아직 그 코드 내에서 쓴적이 없어서 그런가싶다.

 

 

다시한번 잘 생각해보니

ground가 있는것이 문제가 되지는 않을듯하다

ground가 있는게 문제가 아니고 신호가 잘 전달되지 않는것이 문제다.

 

열어보니깐 ... ㅋ 얘는 또 왜 이러고 있어

 

 

아 답답해

혹시 다른 환경설정의 문제인가 싶어

새로운 프로젝트를 다시 하나 만들어서 다시해본다.

 

그래도 똑같다 ...

 

아까부터 느낀거지만

그래도 random_num이 num을 추종하는 것 같기는 하다

타이밍은, 변화하는 패턴이 비슷하니깐

 

연결 ... RTL을 점검하자.

모든게 RTL 문제일 가능성이 크다.

 

어 ...? 뭐 바꾼게 없는데 변했다.

(아까랑 버퍼는 그대론데)

그래도 z값이 변하지는 않았다 ㅠ

 

계속 이것저것 시도를 해봐도 안되네 왜이럴까~~

wiring 오류 라는 키워드로 이것저것 검색중

 

모호한 표현을 사용하지 말고

데이터 오버플로우를 주의해줄것

https://wh00300.tistory.com/208

 

verilog hdl 설계시 주의할 점(2)

 모호한 표현을 사용하지 말자 몇 가지 예시가 있습니다. 1. 동일하지 않은 data width를 가진 신호를 연결하기 input [2:0] in_data; wire [3:0] a; assign a = in_data; 이렇게 할당하게 되면 a[3]은 어떠한 값..

wh00300.tistory.com

 

assign 구문의 순서가 문제인가 싶어서

random_num과 num의 순서를 바꾸어주었는데 

https://gall.dcinside.com/board/view/?id=programming&no=124481 

 

Verilog 질문!!! (코덱님 계시면 봐주세요!) - 프로그래밍 갤러리

코덱 님 답변 덕택에 assign 달고 오타 잡고 해서 에러 거의 다 수정 봤는데요....^_^; (정말 감사드립니다. 오늘 새벽 5시부터 지금까지 베릴로그 공부하면서 멀티 사이클 프로세서 설계중이네요...

gall.dcinside.com

이렇게 에러가 난다. 아까랑 달라졌다.

 

assign을 제거해보자

assign으로 해결할 문제가 아닐수도 있다.

 

자 다시, assign 구문 없애고 나니깐 연결이 해제되었다.

 

instantiation과 port connection을 보자.

 

책을 보다가 

'외부 신호에 연결된 포트만이 이름에 의한 포트 연결을 사용할 수 있다.' 라는 문장을 발견했다.

 

포맷팅을 바꿔보자.

dice_controller 
dice_controller_0 
(
    .clk(clk), 
    .reset_n(reset_n),
    .reset_button(btn[0]),
    .shuffle_button(btn[1]), 
    .random_num(num),
    .led(led)
);

gen_random 
gen_random_0 
(
    .clk(clk), 
    .reset_n(reset_n),
    .num(random_num)
);
dice_controller dice_controller_0 (clk, reset_n, btn[0], btn[1], num, led);
gen_random gen_random_0 (clk, reset_n, random_num);

 

이걸로 되면 억울할 뻔 했는데

슬프게도 여전히 안된다.

 

 

'연결변수의 선언' 부분에서 개념이 덜 잡혀있을까 보강해본다.

 

input output wire reg

https://nate9389.tistory.com/912

 

【논리설계】 5강. 하드웨어 기술 언어

5강. HDL(hardware description language), 베릴로그(verilog) 추천글 : 【논리설계】 논리설계 목차 1. wire vs reg 2. always@/initial 3. descriptions 4. 벡터 표시 5. 하드웨어 구현 시 주의사항 1. wire vs..

nate9389.tistory.com

 

모듈과 모듈 연결

https://www.slideshare.net/beedool/import-module

 

Verilog 모듈 연결하기

Verilog 언어로 작성한 module과 module을 연결하는 방법을 몇 가지 case study로 소개하고 있습니다.

www.slideshare.net

https://0o0deng.tistory.com/entry/%EB%85%BC%EB%A6%AC%EC%84%A4%EA%B3%84-Verilog-HDL-%EC%84%A4%EA%B3%84

 

[논리설계] Verilog-HDL 설계

1. 기본  1) Module  - top module  - 하위 module  - test module modul module_name(port_list); port 선언 reg 선언 wire 선언 parameter 선언 gate modeling data flow modeling behavioral modeling stru..

0o0deng.tistory.com

 

우선 코드를 이렇게 바꿔보았는데 안된다.

 

다른 플젝 글

https://velog.io/@pikamon/Verilog-13

 

[Verilog] UART 컨트롤러를 만들어 보자 (5) - Top 모듈 구현

아래 글에서 각 모듈을 구현하여 검증하였다.https://velog.io/@pikamon/Verilog-10https://velog.io/@pikamon/Verilog-11https://velog.io/@pikamon/Verilog-12이제

velog.io

 

이렇게하니 또 소폭 미세변화

net포트는 무엇인가

굳이 명시적으로 안써줬는데 내가 잘 했던게 맞나 확인차.

https://twodaddy.tistory.com/46

 

Verilog의 net에 대하여

Verilog에서 신호를 정의할 때는 net을 만들면 된다. 예를 들어 아래와 같은 Verilog code는 A라는 net을 만든다. wire A; net은 다른 net을 drive할 수 있다. 여기서 drive한다는 것은, 다른 net이 어떤 값을 가..

twodaddy.tistory.com

 

우선 SOS 치고 잠시 머리좀 식히자.

'적극적 생각 > FPGA' 카테고리의 다른 글

왜 인터커넥트가 필요한가.  (0) 2022.08.23
dice_new 오류해결완료  (0) 2022.08.16
[프로젝트] 주사위 (작성용2)  (0) 2022.08.12
@sensitivity  (0) 2022.08.12
대주제  (0) 2022.08.10