3 비트 디지털 입력 핀 값에 따라 Verilog에서 매개 변수 값을 변경하고 싶습니다. 다음은 내 Verilog 코드 샘플입니다. 나는이 오류 얻을 컴파일하면Verilog에서 매개 변수 값 변경
paramter real C_IP=0;
always @ (reg_DACIP)
begin
case (reg_DACIP)
3'b000 : C_IP = 0.8;
3'b001 : C_IP = 0.6;
3'b010 : C_IP = 0.4;
3'b011 : C_IP = 0.2;
3'b100 : C_IP = 0.0;
3'b101 : C_IP = -0.2;
3'b110 : C_IP = -0.4;
3'b111 : C_IP = -0.6;
endcase
end
는 :
ncvlog: *E,PANOTL: A parameter is not a legal lvalue [3.10(IEEE)].
3'b001 : C_IP = 0.6;
을 나는 Verilog를 매개 변수가 상수위한 이해, 따라서 시뮬레이션 동안 변경할 수 없습니다. 그러나이 문제에 대해 가장 좋은 해결 방법은 무엇입니까?
감사 그렉 없습니다. 함수 예제에서 PARAM_DACIP이란 무엇입니까? DACIP는 내 코드에서 3 비트 논리 입력 핀입니다. calc_C_IP 함수에 어떻게 전달합니까? – sanforyou
또한 첫 번째 중첩 된 조건문 솔루션에서 PARAM_DACIP은 무엇입니까? 어떻게 3 비트 DACIP 입력 핀과 관련시킬 수 있습니까? – sanforyou
@Sandeep, 원래 코드에서'reg' 타입이라고 가정 한'reg_DACIP'을 사용했는데, 나의 예제에서'reg_'를'PARAM_'으로 변경하여 레지스터가 아니라 매개 변수로 사용했습니다. 당신은'PARAM_DACIP'가'parameter [2 : 0] PARAM_DACIP = 3'b100;'(또는 다른 값)으로 정의되었다고 가정합니다. – Greg