저는 Verilog를 처음 접해 보았지만 아직 배우지는 못했습니다.하지만 처음에는 포트 상호 연결에 관한 것입니다. 그래서, 나는 순진하게도 다음 코드바인딩 모듈 포트에 '할당'사용하기
module mult4(input wire [3:0] x, y,
output wire [7:0] z)
sum8 sh, sl, ss;
assign sl.x = (y[0] ? x : 0),
sl.y = (y[1] ? x : 0) << 1,
sh.x = (y[2] ? x : 0) << 2,
sh.x = (y[3] ? x : 0) << 3,
ss.x = sl.z,
ss.y = sh.z,
sl.cin = 0,
sh.cin = 0,
ss.cin = 0,
z = ss.z;
endmodule
을 썼다는 전혀 작동하지 않을했다. 물론
module sum8(input wire cin, // carry-in bit
input wire [7:0] x, y, // operands
output wire cout, // carry-out bit
output wire [7:0] z); // result
나는 컴파일하기 위해이 코드를 다시 작성할 수 있습니다,하지만 난 다른 일을 알고 싶다 : 여기 sum8
는 다음과 같은 서명을 불과 8 비트 가산기이다. Verilog에서 비슷한 모양과 느낌을 얻을 수있는 방법이 있습니까? 아니면 모듈의 이름 뒤에 괄호 안에 포트 매핑을 정의 할 수있는 유일한 곳입니까? 그렇다면 그 이유가 있습니까? 다른 HDL에는 내가 원하는 기능이 있습니까?
찾고있는 기능을 표시 할 수 있습니까? 즉 'sum8'은 무엇을 나타낼 것입니까? 그리고 ss.z는 어떻게 가치가 있습니까? –
'sum8 '이란 무엇입니까? –
@ dave_59 : 오랜 시간 지연되어 죄송합니다. 방금 질문을 업데이트했습니다. 그러나 구체적인 모듈이 어떻게 동작하는지에 관한 것이 아니라'module.port'에서 읽을 수는 있지만 그것을 할당 할 수는 없습니다. 어쩌면 질문 자체가 처음에는 그렇게 좋지 않을 수도 있습니다. – firegurafiku