Bộ dịch thùng (barrel shifter) thực hiện một hoạt động quay phải. Như đã đề cập trước đó, nó xử lý các phép quay trái bằng cách sử dụng số lượng dịch chuyển bổ sung. Bộ ghi thùng cũng có thể thực hiện thay đổi khi có phần cứng che phù hợp. Bộ chuyển số thùng có dạng mảng và dạng logarit. Chúng tôi tập trung vào bộ chuyển số thùng logarit vì chúng phù hợp hơn với các ca lớn.
Hình 0.160: Sơ đồ thanh ghi dịch phễu Hình 0.161: Sơ đồ thanh ghi dịch phễu
Hình 0.162: Bộ chuyển số thùng: (a) xoay phải, (b) xoay trái hoặc phải, (c) xoay và dịch chuyển
Hình 6.19-a cho thấy một bộ dịch thùng 4 bit đơn giản thực hiện các chuyển động quay phải. Lưu ý rằng, không giống như bộ chuyển dịch phễu, bộ chuyển đổi thùng chứa các dây dài quấn quanh. Trong một bộ dịch chuyển lớn, sẽ có lợi khi tăng kích thước hoặc đệm các trình điều khiển cho các dây này. Hình 6.19-b cho thấy một phiên bản nâng cao có thể xoay trái bằng cách xoay trước sang phải 1, sau đó xoay phải k bit. Thực hiện dịch chuyển logic hoặc số học trên bộ dịch chuyển thùng đòi hỏi phải có cách che các bit được quay ra khỏi bộ chuyển dịch, như thể hiện trong Hình 6.19-c. Hình 6.20 cho thấy một bộ dịch thùng 32-bit sử dụng bộ ghép kênh 5: 1 và bộ ghép kênh 8: 1. Giai đoạn đầu tiên xoay sang phải theo 0, 1, 2, 3 hoặc 4 bit để xử lý chuyển động trước của 1 bit và xoay vòng tối đa 3 bit được kết hợp thành một giai đoạn. Giai đoạn thứ hai xoay sang phải 0, 4, 8, 12,16, 20, 24 hoặc 28 bit. Con đường quan trọng bắt đầu với việc giải mã số lượng dịch chuyển cho giai đoạn đầu tiên. Nếu lượng dịch chuyển có sẵn sớm, thì độ trễ từ A đến Y sẽ cải thiện đáng kể.
Trong khi quá trình quay đang diễn ra, bộ tạo mặt nạ tạo ra một mặt nạ N-bit với các mặt nạ mà giá trị kết thúc sẽ được chèn cho các dịch chuyển đúng. Đối với một dịch chuyển sang phải của m, m bit quan trọng nhất (significant bit) là các bit 1. Đây được gọi là mã nhiệt kế và logic để tính toán nó. Khi kết quả quay X hoàn tất, bộ tạo mặt nạ sẽ thay thế các bit bị che bằng giá trị hủy. Đối với ca bên trái, mặt nạ được đảo ngược. Hình 6.21 cho thấy cơ chế mặt nạ logic được tạo ra. Nếu chỉ hỗ trợ một số thay đổi nhất định, thiết bị có thể được đơn giản hóa và nếu chỉ hỗ trợ quay, thiết bị che có thể được loại bỏ, tiết kiệm đáng kể phần cứng, điện năng và độ trễ.
Hình 0.164: Dịch thùng logic
Hình 0.163: Mặt nạ logic dịch thùng
Bài tập
1. Thiết kế bộ cộng 8 bit nhanh. Mỗi đầu vào có thể điều khiển không quá 30λ chiều rộng transistor và đầu ra phải sử dụng bộ đảo 20/10 λ.
2. Thiết kế bộ đếm vòng Johnson 8 bit
3. Thiết kế và phác họa cấu trúc thanh ghi dịch để tạo ra đa thức sinh 1+x4+x13+x15+x16 4. Thiết kế một cấu trúc XOR/XNOR 3,4 cổng
5. Trình bày cách bố trí bộ tạo chẵn lẻ như trong hình sau đây để có thể được thiết kế như một cột tuyến tính của cổng XOR với kênh định tuyến hình cây.
0 1 1
PARITYAn A A ...An
6. Thiết kế bộ giải mã ECC (Error Correcting Code) cho các mã Hamming khoảng cách với c =3. Mạch của bạn phải chấp nhận từ nhận được 7 bit và tạo ra từ dữ liệu đã được sửa 4 bit. Phác thảo một triển khai cấp cổng.
7. Phác thảo thiết kế cho bộ so sánh A - B = k.
8. Thiết kế một bộ cộng đầy đủ 4 đầu vào mức transistor MOSFET
9. Trình bày nguyên lý và sơ đồ thiết kế một thanh ghi dịch thùng (barrel shifter) 32 bit
Phụ lục A
Các nhà thiết kế cần phản hồi nhanh chóng về việc một thiết kế logic có hợp lý hay không. Việc dịch sơ đồ khối và sơ đồ chuyển đổi trạng thái FSM thành sơ đồ mạch tốn nhiều thời gian và dễ bị lỗi. Trước khi thực hiện toàn bộ quá trình này, điều khôn ngoan là biết liệu thiết kế cấp cao nhất có những lỗi lớn và yêu cầu thiết kế lại hoàn toàn hay không. HDL cung cấp một cách để chỉ định thiết kế ở mức trừu tượng cao hơn để nâng cao năng suất của nhà thiết kế. Ban đầu chúng được dùng để làm tài liệu và mô phỏng, nhưng bây giờ được sử dụng để tổng hợp các cổng trực tiếp từ HDL.
Hai ngôn ngữ HDL phổ biến nhất là Verilog và VHDL. Verilog được phát triển Advanced Integrated Design Systems (sau đó được đổi tên thành Gateway Design Automation) vào năm 1984 và trở thành tiêu chuẩn mở trên thực tế của ngành vào năm 1991. Năm 2005, các phần mở rộng của SystemVerilog đã được tiêu chuẩn hóa. VHDL, viết tắt của VHSIC Hardware Description Language, trong đó VHSIC là dự án về Mạch tích hợp tốc độ rất cao. Như người ta có thể mong đợi từ phả hệ của họ, Verilog ít dài dòng hơn và cú pháp gần với C hơn, trong khi VHDL hỗ trợ một số trừu tượng hữu ích cho các dự án nhóm lớn. Nhiều công ty ở Thung lũng Silic sử dụng Verilog trong khi các công ty quốc phòng và viễn thông thường sử dụng VHDL. Không ngôn ngữ nào mang lại lợi thế quyết định so với ngôn ngữ kia, vì vậy ngành công nghiệp này đang phải hỗ trợ cả hai.
Khi viết mã trong HDL, điều quan trọng cần nhớ là bạn đang chỉ định phần cứng hoạt động song song chứ không phải phần mềm thực thi theo trình tự. Có hai kiểu mã hóa chung.
HDL cấu trúc chỉ định cách một cell được cấu tạo bởi các cell khác hoặc các cổng và transistor. Behavioral HDL xác định chức năng của một cell.
Một chương trình mô phỏng logic mô phỏng mã HDL, nó có thể báo cáo liệu kết quả có khớp với mong đợi hay không và có thể hiển thị dạng sóng để giúp gỡ lỗi sự khác biệt. Một công cụ tổng hợp logic tương tự như một trình biên dịch cho phần cứng: nó ánh xạ mã HDL vào một thư viện các cổng được gọi là ô tiêu chuẩn để giảm thiểu diện tích trong khi đáp ứng một số ràng buộc về thời gian. Chỉ một tập hợp con của các cấu trúc HDL là có thể tổng hợp được; tập hợp con này được nhấn mạnh trong phần phụ lục. Ví dụ: các lệnh I/O tệp được sử dụng trong testbench rõ ràng là không thể tổng hợp được. Tổng hợp logic thường tạo ra các mạch không dày đặc và cũng không nhanh như những mạch được làm thủ công bởi một nhà thiết kế lành nghề. Tuy nhiên, các quy trình mạch tích hợp ngày nay đã tiên tiến đến mức các mạch tổng hợp đủ tốt cho phần lớn các mạch tích hợp dành riêng cho ứng dụng (ASIC) được
chế tạo ngày nay. Bố cục có thể được tạo tự động bằng cách sử dụng các công cụ địa điểm và tuyến đường.
Trong Verilog, mỗi cell được gọi là một mô-đun. Các đầu vào và đầu ra được khai báo nhiều như trong chương trình C và độ rộng bit được đưa ra cho các bus. Các tín hiệu bên trong cũng phải được khai báo theo cách tương tự với các biến cục bộ. Bộ xử lý được mô tả phân cấp bằng cách sử dụng Verilog cấu trúc ở các cấp trên và Verilog hành vi cho các cell. Ví dụ, mô-đun bộ điều khiển hiển thị cách máy trạng thái hữu hạn được chỉ định trong Verilog hành vi và mô-đun aludec cho biết cách logic tổ hợp phức tạp được chỉ định. Đường dẫn dữ liệu được chỉ định về cấu trúc dưới dạng các đoạn từ, lần lượt được mô tả theo hành vi.
Để minh họa, bộ cộng 8 bit có thể được mô tả về cấu trúc như một bộ cộng có cờ nhớ bao gồm tám bộ cộng đầy đủ xếp tầng.
Bộ cộng đầy đủ có thể được biểu diễn theo cấu trúc như một tổng và một mạch con mang. Đổi lại, các dòng con tổng và mang có thể được biểu thị theo hành vi.
Một ví dụ về khai báo Verilog cho một mạch logic như sau:
Bộ cộng đầy đủ module adder
(input logic [7:0] a, b,
input logic c,
output logic [7:0] s, output logic cout);
wire [6:0] carry;
Phụ lục B
SPICE là một trình mô phỏng mạch điện tử tương tự nguồn mở, đa năng. Nó là một chương trình được sử dụng trong thiết kế cấp bo mạch và mạch tích hợp để kiểm tra tính toàn vẹn của thiết kế mạch và dự đoán hành vi của mạch.
Không giống như các thiết kế cấp bo mạch bao gồm các bộ phận rời rạc, không thực tế với các mạch tích hợp breadboard trước khi sản xuất. Hơn nữa, chi phí cao của mask photolithographic và các điều kiện sản xuất khác khiến cho việc thiết kế mạch điện trở nên gần
như hoàn hảo nhất có thể trước khi chế tạo mạch tích hợp lần đầu tiên là điều cần thiết. Mô phỏng mạch bằng SPICE là cách tiêu chuẩn công nghiệp để xác minh hoạt động của mạch ở cấp độ bóng bán dẫn trước khi cam kết sản xuất mạch tích hợp.
SPICE trở nên phổ biến vì nó chứa các phân tích và mô hình cần thiết để thiết kế mạch tích hợp vào thời điểm đó, đủ mạnh và đủ nhanh để có thể sử dụng thực tế. Các tiền thân của SPICE thường có một mục tiêu duy nhất: Ví dụ, BIAS chương trình đã thực hiện mô phỏng các hoạt động của mạch bóng bán dẫn lưỡng cực, chương trình SLIC chỉ thực hiện nhỏ tín hiệu phân tích. SPICE kết hợp các hoạt động giải pháp, thoáng qua và các tín hiệu phân tích nhỏ khác nhau với các mạch phần tử và thiết bị mô hình cần thiết để mô phỏng thành nhiều mạch.
SPICE bao gồm các phân tích sau:
Phân tích AC
Phân tíchDC
Phân tích đường cong truyền DC
Phân tích nhiễu
Phân tích hàm truyền
Phân tích quá độ
Vì SPICE thường được sử dụng để mô hình hóa các mạch phi tuyến, các thiết bị nhỏ nhất của tín hiệu phân tích phải được thực hiện trước một điểm tĩnh cho phép tại đó mạch điện được tính toán. SPICE cũng chứa mã cho các phân tích tín hiệu nhỏ khác: phân tích đọ nhạy, không tích cực, tích cực và phân tích méo tín hiệu nhỏ. Phân tích ở các loại nhiệt độ khác nhau được thực hiện bằng cách tự động cập nhật các thông số của mô hình bán dẫn về nhiệt độ, cho phép mô phỏng mạch ở các yêu cầu.
Các mạch mô phỏng khác nhau kể từ đó đã thêm nhiều phân tích ngoài các phân tích trong SPICE để giải quyết các yêu cầu thay đổi của ngành học. Tham số quét đã được thêm vào để tích cực hiệu suất của mạch với công việc thay đổi sai sản xuất hoặc hoạt động điều kiện. Lợi nhuận tính toán và sự ổn định của vòng lặp đã được thêm vào cho các mạch tương tự. Các phân tích cân bằng bằng hài hoặc trạng thái ổn định thời gian miền đã được thêm vào cho RF mạch thiết kế và tụ điện chuyển mạch. Tuy nhiên, một công ty cộng tên miền mô phỏng trình điều khiển có chứa các phân tích và các đại tính năng cần thiết để trở thành một sản phẩm thừa phổ biến cho SPICE vẫn chưa xuất hiện.
Một ví dụ về mô phỏng SPICE của mạch VLSI như sau: