2013-11-01 5 views
-1

두 개의 8 비트 숫자를 Verilog (숙제)로 나누어야합니다. I 사용해야하는 모듈이 하나 인 A = B 형 *의 Q + R2 개의 숫자로 나누는 Verilog 프로그램을 만들어야합니다.

제가 반복적 감산 또는/그리고 % 연산자를 사용하도록 허용되지 않아

module divider(
output reg[7:0] q,   
output reg[7:0] r, 
input [7:0] a,b); 
endmodule 

.

나는, 뉴턴 - 랩슨 또는 골드 슈미트 알고리즘을 해결하기 위해 내가 SRT를 사용할 수있는 이야기입니다,하지만 난 그들이 어떻게 작동하는지 이해가 안 ...

어떤 도움 pls는?

+4

나는보다 직접적인 산술 접근법을 배제했기 때문에 이러한 알고리즘 중 하나가 어떻게 작동 하는지를 배우는 것이 중요하다고 생각합니다. – Morgan

답변

0

1 단계 : Wikipedia 및 Google로 시작하십시오. 뉴톤의 방법에는 엄청난 양의 재료가 있습니다.

2 단계 : 원하는 소프트웨어 언어 (Python, Scala, C, 뭐든간에)로 프로토 타입을 작성하십시오.

3 단계 : 이전 두 단계를 완료 한 후에는 Verilog에서 솔루션을 작성해야합니다.

Newton 방법의 기본 아이디어는 추측을 한 다음 매 클록주기/반복마다 추측을 향상시키는 것입니다. 결국 추측은 정답으로 수렴됩니다. 새로운 추측이 이전 추측과 거의 같으면 완료됩니다.