เอ็นโคเดอร์คืออะไร?

เรียนรู้ตัวเข้ารหัส วงจรอันชาญฉลาดที่ทำให้การแปลงที่สำคัญนี้เกิดขึ้นได้!

เอ็นโคเดอร์คืออะไร?

ตัวเข้ารหัสคือวงจรดิจิทัลที่แปลงอินพุตดิจิทัล M (< 2N) ให้เป็นเอาต์พุตโค้ดที่แตกต่างกัน (แสดงด้วย N บิต) โดยแสดงตำแหน่งของอินพุต โดยทั่วไปคือ 2N > M > N วงจรนี้ใช้กันอย่างแพร่หลายในระบบดิจิทัล ช่วยให้แปลงเส้นอินพุตขนานจำนวนมากให้เป็นเส้นเอาต์พุตน้อยลง

ประเภททั่วไปของตัวเข้ารหัส

  1. ตัวเข้ารหัส 4 ถึง 2
  2. ตัวเข้ารหัสอ็อกทัลเป็นไบนารี (ตัวเข้ารหัส 8 ถึง 3)
  3. การเข้ารหัสทศนิยมเป็น BCD
  4. ตัวเข้ารหัสลำดับความสำคัญ

ตัวเข้ารหัส 4 ถึง 2

ตัวเข้ารหัส 4 ต่อ 2 ประกอบด้วยอินพุต 4 ตัว ได้แก่ I0, I1, I2 และ I3 พร้อมด้วยเอาต์พุต 2 ตัวซึ่งแสดงเป็น Z0 และ Z1 ดังนั้นจึงมีชุดอินพุตที่เป็นไปได้ 16 ชุดในขณะที่มีชุดเอาต์พุตที่เป็นไปได้เพียง 4 ชุดเท่านั้น ดังนั้นจึงไม่สามารถแมปชุดอินพุตทุกชุดไปยังชุดเอาต์พุตเฉพาะได้ ดังนั้นจึงต้องกำหนดข้อจำกัดที่อินพุต ในทุกช่วงเวลา สามารถตั้งค่าอินพุต 4 ตัวเป็น '1' ได้เพียงหนึ่งตัวเท่านั้นเพื่อรับรหัสไบนารีที่สอดคล้องกันที่เอาต์พุต หากตั้งค่าอินพุต 2 ตัวขึ้นไปเป็น '1' เอาต์พุตชุดใดชุดหนึ่งจาก 4 ชุดอาจปรากฏขึ้น แผนภาพด้านล่างแสดงสัญลักษณ์ตรรกะที่แสดงถึงตัวเข้ารหัส 4 ต่อ 2

นิพจน์ตรรกะสำหรับเอาต์พุต Z1 และ Z0 คือ:

Z1=I3+I2

Z0=I3+I1

เราสังเกตได้ว่ารูปแบบอินพุต (I3,I2,I1,I0=1,0,0,0) และ (I3,I2,I1,I0=0,1,1,0) สร้างเอาต์พุตเดียวกัน (Z1,Z0=1,1) รูปแบบแรกมีอินพุตเพียงตัวเดียวเป็น 1 ในขณะที่รูปแบบหลัง เรามีอินพุตสองตัวเป็น 1 เนื่องจากเอาต์พุตเหมือนกันสำหรับรูปแบบอินพุตทั้งสอง จึงยากที่จะระบุว่าสถานะอินพุตใดทำให้เกิดค่าดังกล่าว มีสถานการณ์บางอย่างที่เส้นอินพุตเพียงเส้นเดียวเท่านั้นที่จะมีค่าสูงในช่วงเวลาใดเวลาหนึ่ง (ตัวเข้ารหัสตามตำแหน่ง) อย่างไรก็ตาม เนื่องมาจากสัญญาณรบกวนหรือข้อผิดพลาด อาจเกิดขึ้นโดยไม่ได้ตั้งใจที่เส้นอินพุต 2 เส้นถูกตั้งค่าเข้าด้วยกัน

เพื่อกำจัดความคลุมเครือนี้  จึงใช้ตัวเข้ารหัสลำดับ ความสำคัญ

ตัวเข้ารหัสอ็อกทัลเป็นไบนารี (ตัวเข้ารหัส 8 ถึง 3)

ตัวเข้ารหัส 8 ถึง 3 หรือที่เรียกอีกอย่างว่าตัวเข้ารหัสอ็อกทัลถึงไบนารี ประกอบด้วยอินพุต 8 ตัวที่มีป้ายกำกับว่า I0 ถึง I7 และเอาต์พุต 3 ตัวที่มีชื่อว่า Z2, Z1 และ Z0 แต่ละบรรทัดอินพุตจะถูกแมปกับตัวเลข 3 บิตที่ไม่ซ้ำกัน เอาต์พุตทั้งสามจะสร้างรหัสไบนารี 3 บิตตามลำดับ ไดอะแกรมด้านล่างแสดงสัญลักษณ์ตรรกะของตัวเข้ารหัสอ็อกทัลถึงไบนารี

ตัวเข้ารหัสทศนิยมเป็น BCD

ตัวเข้ารหัสทศนิยมเป็นไบนารีทั่วไปประกอบด้วยเส้นอินพุต 10 เส้นและเส้นเอาต์พุต 4 เส้น เส้นอินพุตแต่ละเส้นแสดงตัวเลขทศนิยม และเอาต์พุต 4 เส้นจะสร้างรหัสทศนิยมแบบไบนารี (BCD) ตัวเข้ารหัสนี้รับข้อมูลทศนิยมที่ถอดรหัสแล้วเป็นอินพุตและแปลงเป็นเอาต์พุต BCD ซึ่งสามารถเข้าถึงได้ผ่านเส้นเอาต์พุต แผนภาพด้านล่างแสดงสัญลักษณ์ตรรกะของตัวเข้ารหัสทศนิยมเป็น BCD

ตารางที่ 3 : ตารางค่าความจริงของตัวเข้ารหัส 8 ถึง 3 อินพุต

ตัวเข้ารหัสลำดับความสำคัญ

ตัวเข้ารหัสลำดับความสำคัญนั้นคล้ายกับตัวเข้ารหัสพื้นฐาน โดยจะแปลงอินพุตไบนารีจำนวนมากให้เป็นเอาต์พุตจำนวนน้อยลง เอาต์พุตของตัวเข้ารหัสนี้สะท้อนดัชนีไบนารีของสายที่เปิดใช้งานที่สำคัญที่สุด ซึ่งแตกต่างจากตัวเข้ารหัสพื้นฐาน หากอินพุตหลายตัวเปิดใช้งานพร้อมกันในตัวเข้ารหัสลำดับความสำคัญ อินพุตที่มีความสำคัญสูงสุดจะเป็นผู้กำหนดเอาต์พุต ซึ่งจะช่วยขจัดความคลุมเครือที่เราพบในตัวเข้ารหัสทั่วไป แม้ว่าตัวเข้ารหัสพื้นฐานจะสามารถจัดการชุดอินพุตที่เป็นไปได้ทั้งหมดได้ แต่ตัวเข้ารหัสพื้นฐานก็ยังต้องการตรรกะเพิ่มเติม ซึ่งทำให้ตัวเข้ารหัสพื้นฐานมีประโยชน์มากกว่าตัวเข้ารหัสพื้นฐาน แต่ต้องแลกมาด้วยความซับซ้อนที่เพิ่มขึ้น

ตัวเข้ารหัสลำดับความสำคัญ 4 ต่อ 2

ตัวเข้ารหัสลำดับความสำคัญ 4 ต่อ 2 มีอินพุต 4 ตัวชื่อ I3, I2, I1 และ I0 พร้อมด้วยเอาต์พุต 2 ตัวชื่อ Z1 และ Z0 ภายในการตั้งค่านี้ I3 จะได้รับการกำหนดลำดับความสำคัญสูงสุดในขณะที่ I0 จะได้รับการกำหนดลำดับความสำคัญต่ำสุด ในสถานการณ์นี้ หากอินพุตหลายตัวมีลำดับความสำคัญสูงพร้อมกันคือ '1' เอาต์พุตจะแสดงรหัส (ไบนารี) ของอินพุตที่มีลำดับความสำคัญสูงสุด ด้านล่างนี้คือตารางค่าความจริงที่แสดงฟังก์ชันการทำงานของตัวเข้ารหัสลำดับความสำคัญ เอาต์พุตอีกตัวหนึ่งถูกเพิ่มเข้ามาเรียกว่า 'V' (ถูกต้อง) เพื่อตรวจจับสถานะศูนย์ของอินพุตทั้งหมด

ตาราง 4: ตารางค่าความจริงของตัวเข้ารหัสลำดับความสำคัญ 4 ถึง 2 อินพุต

รหัส Verilog สำหรับการเข้ารหัสลำดับความสำคัญ

module priority_encoder_4_to_2(en, Din, Dout);
input en;
input [3:0] Din;
output reg [1:0] Dout;
always @ (Din,en)
begin
case (Din)
4'b00000001: Dout = 2'b000;
4'b0000001x: Dout = 2'b001;
4'b000001xx: Dout = 2'b010;
4'b00001xxx: Dout = 2'b011;
default: Dout = 2'bxx;
endcase
end
endmodule

module priority_encoder_8_to_3(en, Din, Dout);
input en;
input [7:0] Din;
output reg [2:0] Dout;
always @ (Din,en)
begin
case (Din)
8'b00000001: Dout = 3'b000;
8'b0000001x: Dout = 3'b001;
8'b000001xx: Dout = 3'b010;
8'b00001xxx: Dout = 3'b011;
8'b0001xxxx: Dout = 3'b100;
8'b001xxxxx: Dout = 3'b101;
8'b01xxxxxx: Dout = 3'b110;
8'b1xxxxxxx: Dout = 3'b111;
default: Dout = 3'bxxx;
endcase
end
endmodule

เอ็นโคเดอร์คืออะไร?

เรียนรู้ตัวเข้ารหัส วงจรอันชาญฉลาดที่ทำให้การแปลงที่สำคัญนี้เกิดขึ้นได้!

นักเขียนบทความ
by 
นักเขียนบทความ
เอ็นโคเดอร์คืออะไร?

เอ็นโคเดอร์คืออะไร?

เรียนรู้ตัวเข้ารหัส วงจรอันชาญฉลาดที่ทำให้การแปลงที่สำคัญนี้เกิดขึ้นได้!

ตัวเข้ารหัสคือวงจรดิจิทัลที่แปลงอินพุตดิจิทัล M (< 2N) ให้เป็นเอาต์พุตโค้ดที่แตกต่างกัน (แสดงด้วย N บิต) โดยแสดงตำแหน่งของอินพุต โดยทั่วไปคือ 2N > M > N วงจรนี้ใช้กันอย่างแพร่หลายในระบบดิจิทัล ช่วยให้แปลงเส้นอินพุตขนานจำนวนมากให้เป็นเส้นเอาต์พุตน้อยลง

ประเภททั่วไปของตัวเข้ารหัส

  1. ตัวเข้ารหัส 4 ถึง 2
  2. ตัวเข้ารหัสอ็อกทัลเป็นไบนารี (ตัวเข้ารหัส 8 ถึง 3)
  3. การเข้ารหัสทศนิยมเป็น BCD
  4. ตัวเข้ารหัสลำดับความสำคัญ

ตัวเข้ารหัส 4 ถึง 2

ตัวเข้ารหัส 4 ต่อ 2 ประกอบด้วยอินพุต 4 ตัว ได้แก่ I0, I1, I2 และ I3 พร้อมด้วยเอาต์พุต 2 ตัวซึ่งแสดงเป็น Z0 และ Z1 ดังนั้นจึงมีชุดอินพุตที่เป็นไปได้ 16 ชุดในขณะที่มีชุดเอาต์พุตที่เป็นไปได้เพียง 4 ชุดเท่านั้น ดังนั้นจึงไม่สามารถแมปชุดอินพุตทุกชุดไปยังชุดเอาต์พุตเฉพาะได้ ดังนั้นจึงต้องกำหนดข้อจำกัดที่อินพุต ในทุกช่วงเวลา สามารถตั้งค่าอินพุต 4 ตัวเป็น '1' ได้เพียงหนึ่งตัวเท่านั้นเพื่อรับรหัสไบนารีที่สอดคล้องกันที่เอาต์พุต หากตั้งค่าอินพุต 2 ตัวขึ้นไปเป็น '1' เอาต์พุตชุดใดชุดหนึ่งจาก 4 ชุดอาจปรากฏขึ้น แผนภาพด้านล่างแสดงสัญลักษณ์ตรรกะที่แสดงถึงตัวเข้ารหัส 4 ต่อ 2

นิพจน์ตรรกะสำหรับเอาต์พุต Z1 และ Z0 คือ:

Z1=I3+I2

Z0=I3+I1

เราสังเกตได้ว่ารูปแบบอินพุต (I3,I2,I1,I0=1,0,0,0) และ (I3,I2,I1,I0=0,1,1,0) สร้างเอาต์พุตเดียวกัน (Z1,Z0=1,1) รูปแบบแรกมีอินพุตเพียงตัวเดียวเป็น 1 ในขณะที่รูปแบบหลัง เรามีอินพุตสองตัวเป็น 1 เนื่องจากเอาต์พุตเหมือนกันสำหรับรูปแบบอินพุตทั้งสอง จึงยากที่จะระบุว่าสถานะอินพุตใดทำให้เกิดค่าดังกล่าว มีสถานการณ์บางอย่างที่เส้นอินพุตเพียงเส้นเดียวเท่านั้นที่จะมีค่าสูงในช่วงเวลาใดเวลาหนึ่ง (ตัวเข้ารหัสตามตำแหน่ง) อย่างไรก็ตาม เนื่องมาจากสัญญาณรบกวนหรือข้อผิดพลาด อาจเกิดขึ้นโดยไม่ได้ตั้งใจที่เส้นอินพุต 2 เส้นถูกตั้งค่าเข้าด้วยกัน

เพื่อกำจัดความคลุมเครือนี้  จึงใช้ตัวเข้ารหัสลำดับ ความสำคัญ

ตัวเข้ารหัสอ็อกทัลเป็นไบนารี (ตัวเข้ารหัส 8 ถึง 3)

ตัวเข้ารหัส 8 ถึง 3 หรือที่เรียกอีกอย่างว่าตัวเข้ารหัสอ็อกทัลถึงไบนารี ประกอบด้วยอินพุต 8 ตัวที่มีป้ายกำกับว่า I0 ถึง I7 และเอาต์พุต 3 ตัวที่มีชื่อว่า Z2, Z1 และ Z0 แต่ละบรรทัดอินพุตจะถูกแมปกับตัวเลข 3 บิตที่ไม่ซ้ำกัน เอาต์พุตทั้งสามจะสร้างรหัสไบนารี 3 บิตตามลำดับ ไดอะแกรมด้านล่างแสดงสัญลักษณ์ตรรกะของตัวเข้ารหัสอ็อกทัลถึงไบนารี

ตัวเข้ารหัสทศนิยมเป็น BCD

ตัวเข้ารหัสทศนิยมเป็นไบนารีทั่วไปประกอบด้วยเส้นอินพุต 10 เส้นและเส้นเอาต์พุต 4 เส้น เส้นอินพุตแต่ละเส้นแสดงตัวเลขทศนิยม และเอาต์พุต 4 เส้นจะสร้างรหัสทศนิยมแบบไบนารี (BCD) ตัวเข้ารหัสนี้รับข้อมูลทศนิยมที่ถอดรหัสแล้วเป็นอินพุตและแปลงเป็นเอาต์พุต BCD ซึ่งสามารถเข้าถึงได้ผ่านเส้นเอาต์พุต แผนภาพด้านล่างแสดงสัญลักษณ์ตรรกะของตัวเข้ารหัสทศนิยมเป็น BCD

ตารางที่ 3 : ตารางค่าความจริงของตัวเข้ารหัส 8 ถึง 3 อินพุต

ตัวเข้ารหัสลำดับความสำคัญ

ตัวเข้ารหัสลำดับความสำคัญนั้นคล้ายกับตัวเข้ารหัสพื้นฐาน โดยจะแปลงอินพุตไบนารีจำนวนมากให้เป็นเอาต์พุตจำนวนน้อยลง เอาต์พุตของตัวเข้ารหัสนี้สะท้อนดัชนีไบนารีของสายที่เปิดใช้งานที่สำคัญที่สุด ซึ่งแตกต่างจากตัวเข้ารหัสพื้นฐาน หากอินพุตหลายตัวเปิดใช้งานพร้อมกันในตัวเข้ารหัสลำดับความสำคัญ อินพุตที่มีความสำคัญสูงสุดจะเป็นผู้กำหนดเอาต์พุต ซึ่งจะช่วยขจัดความคลุมเครือที่เราพบในตัวเข้ารหัสทั่วไป แม้ว่าตัวเข้ารหัสพื้นฐานจะสามารถจัดการชุดอินพุตที่เป็นไปได้ทั้งหมดได้ แต่ตัวเข้ารหัสพื้นฐานก็ยังต้องการตรรกะเพิ่มเติม ซึ่งทำให้ตัวเข้ารหัสพื้นฐานมีประโยชน์มากกว่าตัวเข้ารหัสพื้นฐาน แต่ต้องแลกมาด้วยความซับซ้อนที่เพิ่มขึ้น

ตัวเข้ารหัสลำดับความสำคัญ 4 ต่อ 2

ตัวเข้ารหัสลำดับความสำคัญ 4 ต่อ 2 มีอินพุต 4 ตัวชื่อ I3, I2, I1 และ I0 พร้อมด้วยเอาต์พุต 2 ตัวชื่อ Z1 และ Z0 ภายในการตั้งค่านี้ I3 จะได้รับการกำหนดลำดับความสำคัญสูงสุดในขณะที่ I0 จะได้รับการกำหนดลำดับความสำคัญต่ำสุด ในสถานการณ์นี้ หากอินพุตหลายตัวมีลำดับความสำคัญสูงพร้อมกันคือ '1' เอาต์พุตจะแสดงรหัส (ไบนารี) ของอินพุตที่มีลำดับความสำคัญสูงสุด ด้านล่างนี้คือตารางค่าความจริงที่แสดงฟังก์ชันการทำงานของตัวเข้ารหัสลำดับความสำคัญ เอาต์พุตอีกตัวหนึ่งถูกเพิ่มเข้ามาเรียกว่า 'V' (ถูกต้อง) เพื่อตรวจจับสถานะศูนย์ของอินพุตทั้งหมด

ตาราง 4: ตารางค่าความจริงของตัวเข้ารหัสลำดับความสำคัญ 4 ถึง 2 อินพุต

รหัส Verilog สำหรับการเข้ารหัสลำดับความสำคัญ

module priority_encoder_4_to_2(en, Din, Dout);
input en;
input [3:0] Din;
output reg [1:0] Dout;
always @ (Din,en)
begin
case (Din)
4'b00000001: Dout = 2'b000;
4'b0000001x: Dout = 2'b001;
4'b000001xx: Dout = 2'b010;
4'b00001xxx: Dout = 2'b011;
default: Dout = 2'bxx;
endcase
end
endmodule

module priority_encoder_8_to_3(en, Din, Dout);
input en;
input [7:0] Din;
output reg [2:0] Dout;
always @ (Din,en)
begin
case (Din)
8'b00000001: Dout = 3'b000;
8'b0000001x: Dout = 3'b001;
8'b000001xx: Dout = 3'b010;
8'b00001xxx: Dout = 3'b011;
8'b0001xxxx: Dout = 3'b100;
8'b001xxxxx: Dout = 3'b101;
8'b01xxxxxx: Dout = 3'b110;
8'b1xxxxxxx: Dout = 3'b111;
default: Dout = 3'bxxx;
endcase
end
endmodule

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

เอ็นโคเดอร์คืออะไร?

เอ็นโคเดอร์คืออะไร?

เรียนรู้ตัวเข้ารหัส วงจรอันชาญฉลาดที่ทำให้การแปลงที่สำคัญนี้เกิดขึ้นได้!

Lorem ipsum dolor amet consectetur adipiscing elit tortor massa arcu non.

ตัวเข้ารหัสคือวงจรดิจิทัลที่แปลงอินพุตดิจิทัล M (< 2N) ให้เป็นเอาต์พุตโค้ดที่แตกต่างกัน (แสดงด้วย N บิต) โดยแสดงตำแหน่งของอินพุต โดยทั่วไปคือ 2N > M > N วงจรนี้ใช้กันอย่างแพร่หลายในระบบดิจิทัล ช่วยให้แปลงเส้นอินพุตขนานจำนวนมากให้เป็นเส้นเอาต์พุตน้อยลง

ประเภททั่วไปของตัวเข้ารหัส

  1. ตัวเข้ารหัส 4 ถึง 2
  2. ตัวเข้ารหัสอ็อกทัลเป็นไบนารี (ตัวเข้ารหัส 8 ถึง 3)
  3. การเข้ารหัสทศนิยมเป็น BCD
  4. ตัวเข้ารหัสลำดับความสำคัญ

ตัวเข้ารหัส 4 ถึง 2

ตัวเข้ารหัส 4 ต่อ 2 ประกอบด้วยอินพุต 4 ตัว ได้แก่ I0, I1, I2 และ I3 พร้อมด้วยเอาต์พุต 2 ตัวซึ่งแสดงเป็น Z0 และ Z1 ดังนั้นจึงมีชุดอินพุตที่เป็นไปได้ 16 ชุดในขณะที่มีชุดเอาต์พุตที่เป็นไปได้เพียง 4 ชุดเท่านั้น ดังนั้นจึงไม่สามารถแมปชุดอินพุตทุกชุดไปยังชุดเอาต์พุตเฉพาะได้ ดังนั้นจึงต้องกำหนดข้อจำกัดที่อินพุต ในทุกช่วงเวลา สามารถตั้งค่าอินพุต 4 ตัวเป็น '1' ได้เพียงหนึ่งตัวเท่านั้นเพื่อรับรหัสไบนารีที่สอดคล้องกันที่เอาต์พุต หากตั้งค่าอินพุต 2 ตัวขึ้นไปเป็น '1' เอาต์พุตชุดใดชุดหนึ่งจาก 4 ชุดอาจปรากฏขึ้น แผนภาพด้านล่างแสดงสัญลักษณ์ตรรกะที่แสดงถึงตัวเข้ารหัส 4 ต่อ 2

นิพจน์ตรรกะสำหรับเอาต์พุต Z1 และ Z0 คือ:

Z1=I3+I2

Z0=I3+I1

เราสังเกตได้ว่ารูปแบบอินพุต (I3,I2,I1,I0=1,0,0,0) และ (I3,I2,I1,I0=0,1,1,0) สร้างเอาต์พุตเดียวกัน (Z1,Z0=1,1) รูปแบบแรกมีอินพุตเพียงตัวเดียวเป็น 1 ในขณะที่รูปแบบหลัง เรามีอินพุตสองตัวเป็น 1 เนื่องจากเอาต์พุตเหมือนกันสำหรับรูปแบบอินพุตทั้งสอง จึงยากที่จะระบุว่าสถานะอินพุตใดทำให้เกิดค่าดังกล่าว มีสถานการณ์บางอย่างที่เส้นอินพุตเพียงเส้นเดียวเท่านั้นที่จะมีค่าสูงในช่วงเวลาใดเวลาหนึ่ง (ตัวเข้ารหัสตามตำแหน่ง) อย่างไรก็ตาม เนื่องมาจากสัญญาณรบกวนหรือข้อผิดพลาด อาจเกิดขึ้นโดยไม่ได้ตั้งใจที่เส้นอินพุต 2 เส้นถูกตั้งค่าเข้าด้วยกัน

เพื่อกำจัดความคลุมเครือนี้  จึงใช้ตัวเข้ารหัสลำดับ ความสำคัญ

ตัวเข้ารหัสอ็อกทัลเป็นไบนารี (ตัวเข้ารหัส 8 ถึง 3)

ตัวเข้ารหัส 8 ถึง 3 หรือที่เรียกอีกอย่างว่าตัวเข้ารหัสอ็อกทัลถึงไบนารี ประกอบด้วยอินพุต 8 ตัวที่มีป้ายกำกับว่า I0 ถึง I7 และเอาต์พุต 3 ตัวที่มีชื่อว่า Z2, Z1 และ Z0 แต่ละบรรทัดอินพุตจะถูกแมปกับตัวเลข 3 บิตที่ไม่ซ้ำกัน เอาต์พุตทั้งสามจะสร้างรหัสไบนารี 3 บิตตามลำดับ ไดอะแกรมด้านล่างแสดงสัญลักษณ์ตรรกะของตัวเข้ารหัสอ็อกทัลถึงไบนารี

ตัวเข้ารหัสทศนิยมเป็น BCD

ตัวเข้ารหัสทศนิยมเป็นไบนารีทั่วไปประกอบด้วยเส้นอินพุต 10 เส้นและเส้นเอาต์พุต 4 เส้น เส้นอินพุตแต่ละเส้นแสดงตัวเลขทศนิยม และเอาต์พุต 4 เส้นจะสร้างรหัสทศนิยมแบบไบนารี (BCD) ตัวเข้ารหัสนี้รับข้อมูลทศนิยมที่ถอดรหัสแล้วเป็นอินพุตและแปลงเป็นเอาต์พุต BCD ซึ่งสามารถเข้าถึงได้ผ่านเส้นเอาต์พุต แผนภาพด้านล่างแสดงสัญลักษณ์ตรรกะของตัวเข้ารหัสทศนิยมเป็น BCD

ตารางที่ 3 : ตารางค่าความจริงของตัวเข้ารหัส 8 ถึง 3 อินพุต

ตัวเข้ารหัสลำดับความสำคัญ

ตัวเข้ารหัสลำดับความสำคัญนั้นคล้ายกับตัวเข้ารหัสพื้นฐาน โดยจะแปลงอินพุตไบนารีจำนวนมากให้เป็นเอาต์พุตจำนวนน้อยลง เอาต์พุตของตัวเข้ารหัสนี้สะท้อนดัชนีไบนารีของสายที่เปิดใช้งานที่สำคัญที่สุด ซึ่งแตกต่างจากตัวเข้ารหัสพื้นฐาน หากอินพุตหลายตัวเปิดใช้งานพร้อมกันในตัวเข้ารหัสลำดับความสำคัญ อินพุตที่มีความสำคัญสูงสุดจะเป็นผู้กำหนดเอาต์พุต ซึ่งจะช่วยขจัดความคลุมเครือที่เราพบในตัวเข้ารหัสทั่วไป แม้ว่าตัวเข้ารหัสพื้นฐานจะสามารถจัดการชุดอินพุตที่เป็นไปได้ทั้งหมดได้ แต่ตัวเข้ารหัสพื้นฐานก็ยังต้องการตรรกะเพิ่มเติม ซึ่งทำให้ตัวเข้ารหัสพื้นฐานมีประโยชน์มากกว่าตัวเข้ารหัสพื้นฐาน แต่ต้องแลกมาด้วยความซับซ้อนที่เพิ่มขึ้น

ตัวเข้ารหัสลำดับความสำคัญ 4 ต่อ 2

ตัวเข้ารหัสลำดับความสำคัญ 4 ต่อ 2 มีอินพุต 4 ตัวชื่อ I3, I2, I1 และ I0 พร้อมด้วยเอาต์พุต 2 ตัวชื่อ Z1 และ Z0 ภายในการตั้งค่านี้ I3 จะได้รับการกำหนดลำดับความสำคัญสูงสุดในขณะที่ I0 จะได้รับการกำหนดลำดับความสำคัญต่ำสุด ในสถานการณ์นี้ หากอินพุตหลายตัวมีลำดับความสำคัญสูงพร้อมกันคือ '1' เอาต์พุตจะแสดงรหัส (ไบนารี) ของอินพุตที่มีลำดับความสำคัญสูงสุด ด้านล่างนี้คือตารางค่าความจริงที่แสดงฟังก์ชันการทำงานของตัวเข้ารหัสลำดับความสำคัญ เอาต์พุตอีกตัวหนึ่งถูกเพิ่มเข้ามาเรียกว่า 'V' (ถูกต้อง) เพื่อตรวจจับสถานะศูนย์ของอินพุตทั้งหมด

ตาราง 4: ตารางค่าความจริงของตัวเข้ารหัสลำดับความสำคัญ 4 ถึง 2 อินพุต

รหัส Verilog สำหรับการเข้ารหัสลำดับความสำคัญ

module priority_encoder_4_to_2(en, Din, Dout);
input en;
input [3:0] Din;
output reg [1:0] Dout;
always @ (Din,en)
begin
case (Din)
4'b00000001: Dout = 2'b000;
4'b0000001x: Dout = 2'b001;
4'b000001xx: Dout = 2'b010;
4'b00001xxx: Dout = 2'b011;
default: Dout = 2'bxx;
endcase
end
endmodule

module priority_encoder_8_to_3(en, Din, Dout);
input en;
input [7:0] Din;
output reg [2:0] Dout;
always @ (Din,en)
begin
case (Din)
8'b00000001: Dout = 3'b000;
8'b0000001x: Dout = 3'b001;
8'b000001xx: Dout = 3'b010;
8'b00001xxx: Dout = 3'b011;
8'b0001xxxx: Dout = 3'b100;
8'b001xxxxx: Dout = 3'b101;
8'b01xxxxxx: Dout = 3'b110;
8'b1xxxxxxx: Dout = 3'b111;
default: Dout = 3'bxxx;
endcase
end
endmodule