tb 까지는 셋팅을 완료했고
랜덤생성된 숫자로 표출될 수 있도록 gen을 조정해준다.
설계를 조정한다.
sync가 아닌 async로 만들고
delay timing을 고려해준다. 1clk 정도?
안되겠다.
난수 하려면 counter 쓰는게 편할듯해서
async 말고 sync 로 바꿔주기는 해야할듯하다.
1부터 6까지 계속해서 카운터되는 모듈을 만들었고
request를 보낼때 시점에 얻어오는 것으로 하자.
구현하다가 느꼈는데,
request 신호는 필요 없길래
제거했다.
um... tb그냥 바로 돌려봤는데 왜 이렇게 뜨지?
verilog concat 문법확인
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
[논리설계] 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 |