คำนำหน้าเซลล์ adder แบบขนานใน Negabinary


14

ฉันกำลังพยายามออกแบบตัวเสริมคำนำหน้าแบบขนานสำหรับแอดเดอร์พื้นฐานที่ใช้ negabinary Negabinary เป็นฐานแทนคุ้นเคยฐาน2ไบนารี ตัวบวก 1 บิตแต่ละตัวจะสร้างผลรวมและสองตัว (แทนที่จะเป็นหนึ่งในรูปแบบไบนารี) ที่นำไปสู่ตัวบวกถัดไป-22

เพื่อให้แอดเดอร์เร็วขึ้นฉันต้องการใช้โครงสร้างคำนำหน้าแบบขนานเช่นโครงสร้าง Ladner-Fischer ตามที่ระบุด้านล่าง ฉันคุ้นเคยกับการทำงานของเซลล์สีม่วงในระบบเลขฐานสอง แต่ฉันไม่แน่ใจว่าจะใช้ฟังก์ชันการทำงานแบบเดียวกันในระบบ negabinary ได้อย่างไร

เหตุผลที่ฉันทำสิ่งนี้เป็นเพียงเพื่อความสนุกฉันยังไม่พบการใช้งานใด ๆ สำหรับ negabinary

สูตรสำหรับการคำนวณผลรวมและนำไปใช้:

sผม=aผมผม(ผม++ผม-)

ผม+1+=aผม¯ผม¯ผม+¯ผม-

ผม+1-=aผมผมผม-¯+aผมผม+ผม-¯+ผมผม+ผม-¯

Ladner-fischer มีโครงสร้างต้นไม้:

ป้อนคำอธิบายรูปภาพที่นี่

หากมีสิ่งใดไม่ชัดเจนโปรดอย่าลังเลที่จะถาม


แม้ว่านี่อาจเป็นคำถามที่น่าสนใจ แต่ดูเหมือนว่าจะไม่ใช่คำถามเกี่ยวกับไฟฟ้าและคุณอาจมีโชคที่ดีกว่าในการนำคณิตศาสตร์ SE มาใช้
Redja

3
ฉันใส่ที่นี่เพราะฉันคิดว่าคน EE มีประสบการณ์มากขึ้นกับการใช้ตรรกะในการออกแบบการออกแบบอุปกรณ์เสริม ฯลฯ
gilianzz

นี่เป็นคำถามทั้งหมดของ EE
Voltage Spike

ดูเหมือนว่าคุณต้องการเอาต์พุตมากกว่าสองต่อการพกพา คุณไม่จำเป็นต้องสร้างและเผยแพร่สำหรับทั้งการพกพาและการยืมหรือไม่
สิ้นเชิง

ฉันสมมติว่าคุณกำลังพูดถึงโครงสร้าง Ladner-fischer มันเป็นเพียงตัวอย่างเพื่ออวดต้นไม้นำหน้าแบบขนาน adder negabinary 1 บิตแต่ละอันจะมีผลรวมเป็นผลบวกและลบ ฉันไม่แน่ใจว่าเราสามารถใช้แนวคิดของการสร้างและเผยแพร่ด้วย negabinary
gilianzz

คำตอบ:


1

ฉันอาจใช้เวลากับคำถามนี้มากกว่าที่ควรจะเป็น แต่นี่คือข้อค้นพบของฉัน

ฉันไม่พบตัวอย่างของ adder ขนาน "บริสุทธิ์" ใด ๆ สำหรับตัวเลข negabinary ฉันก็คิดว่ามันเป็นปัญหาที่เปิดกว้างเพราะฉันไม่ได้เห็นข้อพิสูจน์ว่ามันเป็นไปไม่ได้

ที่ใกล้เคียงที่สุดที่ฉันสามารถรับคุณคือการใช้สองสามขั้นตอนเชิงลบเชิงลบ มันขึ้นอยู่กับคุณสมบัติดังต่อไปนี้:

f(x)=xn1¯xn2...x1¯x0g(x)=xn1xn2¯...x1x0¯0xAA...AA0x55...55

(a+nbb)=g(f(a)+f(b)+1)

+nb+

ผลรวมเชิงลบนั้นสามารถกลับด้านได้โดยใช้คุณสมบัติเดียวกัน แต่มีตัวถูกดำเนินการศูนย์:

x=g(f(x)+f(0)+1)

ดังนั้นเพื่อหาผลรวมโดยใช้โปรแกรมเสริมส่วนนำหน้าแบบขนานคุณสามารถ:

  1. f(a)f(b)
  2. +1s1
  3. s1f(g(s1))
  4. 0xAA...AB=f(0)+1s2
  5. g(s2)

จริง ๆ แล้วฉันพยายามค้นหา adder ที่ขนานกันแบบ "บริสุทธิ์" แต่ฉันคิดว่ามันซับซ้อนเกินไปสำหรับเวลาที่ฉันยินดีจ่าย นี่คือเหตุผล:

{0,1}n×{0,1}n{0,1}nab=ab¯

(a)=a¯¯a()=a¯¯

ผม+ผม-¯ผม-ผม+¯


ความเข้าใจปัจจุบันของฉันคือในความเป็นจริงมันเป็นไปไม่ได้ที่จะสร้าง adder ขนาน "บริสุทธิ์" นี้ ดูเหมือนว่าแอดเดอร์ตัวนำหน้าแบบขนานจะได้ประสิทธิภาพของ O (log (N)) ในขณะที่ค่าที่เป็นลบนั้นดูเหมือนว่าจะมีความซับซ้อน O (2 * log (N)) (2x nnba) เสมอ
gilianzz

ฉันไม่พบวรรณกรรมใด ๆ พิสูจน์หรือระบุว่ามันเป็นไปไม่ได้ ฉันยินดีที่จะได้รับการพิสูจน์ผิดทั้งสองวิธี แต่ nnba แบบสองขั้นตอนดูเหมือนจะเป็นมาตรฐานสำหรับการเพิ่มในเชิงลบตามที่ฉันสามารถบอกได้
สเวน B
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.