0
나는 이미 어려움을 겪고 있으며 간단하고 유용한 해결책을 찾을 수 없습니다.Verilog에서 +1, -1의 삼각파 신호
I는 16 비트
크기 삼각형 신호를 시뮬레이션 값 1과 0에 랜덤 잡음을 부가하고자 -1. 노이즈가있는 신호는 원래의 노이즈와 1을 초과하지 않으며 노이즈가있는 신호의 이전 값과 다를 수 없다는 점이 중요합니다. 예를 들어, 그 방법으로 값 싶습니다ORIGINAL SIGNAL : 11,111 22,222 33,333 44,444 55,555 ...
NOISED SIGNAL : 12,321 12,332 23,434 34,345 45,665 ... I가 신호를 시뮬레이션
을 주요 초점은 이제이 원본 신호에 잡음을 추가하기 때문에 0과 30766 사이의 값입니다. 이 코드는 최대 값 1의 차이를 제한하는 조건을 제거했기 때문에 제대로 작동합니다.
이 신호는 테스트 벤치에 사용됩니다.
reg [15:0] SIGNAL_i;
reg [15:0] SIGNAL_ii;
reg [15:0] SIGNAL_noise_i;
reg [15:0] SIGNAL_noise_reg; //za hranjenje zasumljenega signala
int RANDOM_noise_i;
int COUNT_end;
int COUNT;
initial SIGNAL_i=1;
initial COUNT_end=0;
initial COUNT=3'd4;
initial SIGNAL_ii=0;
initial SIGNAL_noise_i=1;
initial SIGNAL_noise_reg=0;
initial RANDOM_noise_i=1;
initial CLK = 1;
always #5 CLK = ~CLK;
always #10
begin
SIGNAL_noise_reg <= SIGNAL_noise_i;
RANDOM_noise_i = $signed($urandom_range(0,2))-1; //random noise generation
//upcount
if ((SIGNAL_i<16'd30766) && (SIGNAL_ii<SIGNAL_i)) //32765
begin
begin
if (COUNT_end==COUNT)
begin
assign SIGNAL_noise_i=SIGNAL_i + (RANDOM_noise_i);
SIGNAL_i=SIGNAL_i + 1;
SIGNAL_ii=SIGNAL_ii + 1;
COUNT_end=0;
COUNT_end=0;
end
else
begin
assign SIGNAL_noise_i=SIGNAL_i + (RANDOM_noise_i);
COUNT_end= COUNT_end + 1;
end
end
end
//counter on zero
else if (SIGNAL_i == 0)
begin
SIGNAL_i = 1;
SIGNAL_ii = 0;
SIGNAL_noise_i = SIGNAL_i + RANDOM_noise_i;
end
//down count
else
begin
if (COUNT_end==COUNT)
begin
assign SIGNAL_noise_i=SIGNAL_i + (RANDOM_noise_i);
SIGNAL_i=SIGNAL_i - 1;
SIGNAL_ii=SIGNAL_ii + 1;
COUNT_end=0;
COUNT_end=0;
end
else
begin
assign SIGNAL_noise_i=SIGNAL_i + (RANDOM_noise_i);
COUNT_end= COUNT_end + 1;
end
end
end
end
정말 감사드립니다. 감사합니다.
가능한 복제 [하여 Verilog에의 거친 임의의 신호를 잘하지를 얻는 방법?] (http://stackoverflow.com/questions/43197205/how-to-get-the-a-coarse- 랜덤 - 신호 - 더 - verilog - 좋지 않아) –
난 +1.0과 -1 값으로 무작위 순서를 생성하는 방법입니다 귀하의 질문은 생각하십니까? 어떤 유형의 배포를 원했습니까? – Morgan
저는 Triangle Waveform을 가지고 싶습니다. 0에서 65,534까지 그리고 다시 0으로 돌아가고 계속됩니다. 각 값은 4 번 반복됩니다. 원래의 신호 : 11111 22222 33333 44444 55555 ... NOISED SIGNAL이이 successfuly 완료되면 나는 내 질문에 예를 주어진대로이 값에 노이즈를 추가 할 12321 12332 23434 34345 45665 ... 하나의 시뮬레이션을 위해 이런 종류의 잡음 신호를 생성하고 싶습니다. – surfer113