나는 Verilog에서 분할기 회로를 만들고 비 복원 분할 알고리즘을 사용하고있다. 나머지를 소수 바이너리 수로 나타내는 데 문제가 있습니다. 예를 들어 내가 0111/0011 (7/3)을 할 경우 0010과 나머지가 0001 인 몫을 얻었지만 그걸 0010.0101로 나타내고 싶습니다. 누군가가 도와 줄 수 있습니까 ??Computer_Architecture + Verilog
2
A
답변
2
예제에서와 같이 4 비트 숫자를 나누고 있지만 결과에 분수 정밀도 4 비트가 추가로 필요하다고 가정합니다.
하나의 접근법은 나누기를 수행하기 전에 분자에 2^4를 간단히 곱하는 것입니다.
즉
instead of
0111/0011 = 0010 (+remainder)
do
01110000/0011 = 00100101 (+remainder)
+0
도움에 감사드립니다. – user16
0
안녕하세요 단지 수학을!
당신은 Q (지수)와 R (나머지)를 이미 가지고 있습니다. 나머지는 2 진 1010에서 10 (십진수)로 곱합니다. 예를 들어 7/3은 Q가 2이고 나머지가 1입니다. 이 1에 10을 곱한 다음 다시 10/3이라는 논리를 적용하면 Q가 3이되어 답이 3 (Q (first_division))이됩니다. (2 번째 항 -Q)
시도해보십시오 . 매우 쉽게 Verilog에서 구현할 수 있습니다.
7/3 = 2.33333 ... 2에서 0010 (2의 2 진수)을 의미하는 것을 이해합니다. 귀하의 질문에서 말한 것처럼 .3333 부분을 어떻게 (0001)으로 나타내십니까? – Osaid