Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
Untitled diff
생성일
9년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
1 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
60 행
복사
1 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
60 행
복사
module cordic(clk, z0, xn, yn);
module cordic(clk, z0, xn, yn);
input clk;
input clk;
input [10:0] z0;
input [10:0] z0;
output [16:0] xn, yn;
output [16:0] xn, yn;
parameter N= 10; // number of iterations
parameter N= 10; // number of iterations
reg [(N-1):0] d;
reg [(N-1):0] d;
reg [16:0] x [N:0];
reg [16:0] x [N:0];
reg [16:0] y [N:0];
reg [16:0] y [N:0];
reg [10:0] z [N:0];
reg [10:0] z [N:0];
reg [10:0] arctan [(N-1):0];
reg [10:0] arctan [(N-1):0];
initial begin
initial begin
x[0] = 'b0_10011_0110_1110_1001; // 0.60725 in binary
x[0] = 'b0_10011_0110_1110_1001; // 0.60725 in binary
y[0] = 0;
y[0] = 0;
복사
복사됨
복사
복사됨
z[0] = z0;
arctan[0] = 'b010_1101_0000; // 45.0;
arctan[0] = 'b010_1101_0000; // 45.0;
arctan[1] = 'b001_1010_1001; // 26.6;
arctan[1] = 'b001_1010_1001; // 26.6;
arctan[2] = 'b000_1110_0000; // 14.0;
arctan[2] = 'b000_1110_0000; // 14.0;
arctan[3] = 'b000_0111_0001; // 7.1;
arctan[3] = 'b000_0111_0001; // 7.1;
arctan[4] = 'b000_0011_1001; // 3.6;
arctan[4] = 'b000_0011_1001; // 3.6;
arctan[5] = 'b000_0001_1100; // 1.8;
arctan[5] = 'b000_0001_1100; // 1.8;
arctan[6] = 'b000_0000_1110; // 0.9;
arctan[6] = 'b000_0000_1110; // 0.9;
arctan[7] = 'b000_0000_0110; // 0.4;
arctan[7] = 'b000_0000_0110; // 0.4;
arctan[8] = 'b000_0000_0011; // 0.2;
arctan[8] = 'b000_0000_0011; // 0.2;
arctan[9] = 'b000_0000_0001; // 0.1;
arctan[9] = 'b000_0000_0001; // 0.1;
end
end
integer i;
integer i;
always @(posedge clk)
always @(posedge clk)
복사
복사됨
복사
복사됨
begin
z[0] = z0;
begin
for(i=0; i<N; i=i+1)
for(i=0; i<N; i=i+1)
begin
begin
d[i] = (z[i][10] == 0) ? 0 : 1;
d[i] = (z[i][10] == 0) ? 0 : 1;
if(d[i] == 0) begin
if(d[i] == 0) begin
x[i+1] = x[i] - (y[i] >> i);
x[i+1] = x[i] - (y[i] >> i);
y[i+1] = y[i] + (x[i] >> i);
y[i+1] = y[i] + (x[i] >> i);
z[i+1] = z[i] - arctan[i];
z[i+1] = z[i] - arctan[i];
end
end
else begin
else begin
x[i+1] = x[i] + (y[i] >> i);
x[i+1] = x[i] + (y[i] >> i);
y[i+1] = y[i] - (x[i] >> i);
y[i+1] = y[i] - (x[i] >> i);
z[i+1] = z[i] + arctan[i];
z[i+1] = z[i] + arctan[i];
end
end
$display("i=%2d, x[i]=%b, y[i]=%b, z[i]=%b, d[i]=%2d, arctan[i]=%b", i,x[i],y[i],z[i],d[i],arctan[i]);
$display("i=%2d, x[i]=%b, y[i]=%b, z[i]=%b, d[i]=%2d, arctan[i]=%b", i,x[i],y[i],z[i],d[i],arctan[i]);
end
end
end
end
assign xn = x[N]; // xn = cos(z0)
assign xn = x[N]; // xn = cos(z0)
assign yn = y[N]; // yn = sin(z0)
assign yn = y[N]; // yn = sin(z0)
endmodule
endmodule
저장된 비교 결과
원본
파일 열기
module cordic(clk, z0, xn, yn); input clk; input [10:0] z0; output [16:0] xn, yn; parameter N= 10; // number of iterations reg [(N-1):0] d; reg [16:0] x [N:0]; reg [16:0] y [N:0]; reg [10:0] z [N:0]; reg [10:0] arctan [(N-1):0]; initial begin x[0] = 'b0_10011_0110_1110_1001; // 0.60725 in binary y[0] = 0; arctan[0] = 'b010_1101_0000; // 45.0; arctan[1] = 'b001_1010_1001; // 26.6; arctan[2] = 'b000_1110_0000; // 14.0; arctan[3] = 'b000_0111_0001; // 7.1; arctan[4] = 'b000_0011_1001; // 3.6; arctan[5] = 'b000_0001_1100; // 1.8; arctan[6] = 'b000_0000_1110; // 0.9; arctan[7] = 'b000_0000_0110; // 0.4; arctan[8] = 'b000_0000_0011; // 0.2; arctan[9] = 'b000_0000_0001; // 0.1; end integer i; always @(posedge clk) begin z[0] = z0; for(i=0; i<N; i=i+1) begin d[i] = (z[i][10] == 0) ? 0 : 1; if(d[i] == 0) begin x[i+1] = x[i] - (y[i] >> i); y[i+1] = y[i] + (x[i] >> i); z[i+1] = z[i] - arctan[i]; end else begin x[i+1] = x[i] + (y[i] >> i); y[i+1] = y[i] - (x[i] >> i); z[i+1] = z[i] + arctan[i]; end $display("i=%2d, x[i]=%b, y[i]=%b, z[i]=%b, d[i]=%2d, arctan[i]=%b", i,x[i],y[i],z[i],d[i],arctan[i]); end end assign xn = x[N]; // xn = cos(z0) assign yn = y[N]; // yn = sin(z0) endmodule
수정본
파일 열기
module cordic(clk, z0, xn, yn); input clk; input [10:0] z0; output [16:0] xn, yn; parameter N= 10; // number of iterations reg [(N-1):0] d; reg [16:0] x [N:0]; reg [16:0] y [N:0]; reg [10:0] z [N:0]; reg [10:0] arctan [(N-1):0]; initial begin x[0] = 'b0_10011_0110_1110_1001; // 0.60725 in binary y[0] = 0; z[0] = z0; arctan[0] = 'b010_1101_0000; // 45.0; arctan[1] = 'b001_1010_1001; // 26.6; arctan[2] = 'b000_1110_0000; // 14.0; arctan[3] = 'b000_0111_0001; // 7.1; arctan[4] = 'b000_0011_1001; // 3.6; arctan[5] = 'b000_0001_1100; // 1.8; arctan[6] = 'b000_0000_1110; // 0.9; arctan[7] = 'b000_0000_0110; // 0.4; arctan[8] = 'b000_0000_0011; // 0.2; arctan[9] = 'b000_0000_0001; // 0.1; end integer i; always @(posedge clk) begin for(i=0; i<N; i=i+1) begin d[i] = (z[i][10] == 0) ? 0 : 1; if(d[i] == 0) begin x[i+1] = x[i] - (y[i] >> i); y[i+1] = y[i] + (x[i] >> i); z[i+1] = z[i] - arctan[i]; end else begin x[i+1] = x[i] + (y[i] >> i); y[i+1] = y[i] - (x[i] >> i); z[i+1] = z[i] + arctan[i]; end $display("i=%2d, x[i]=%b, y[i]=%b, z[i]=%b, d[i]=%2d, arctan[i]=%b", i,x[i],y[i],z[i],d[i],arctan[i]); end end assign xn = x[N]; // xn = cos(z0) assign yn = y[N]; // yn = sin(z0) endmodule
비교하기