Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 57 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
57
Dung lượng
3,63 MB
Nội dung
LOGO “ Add your company slogan ” GIÁO VIÊN HƯỚNG DẪN:HOÀNG VÂN ĐÔNG NHÓM 8: PHẠM VĂN THÁI ĐỖ HỮU TUẤN ĐỀ TÀI THIẾTKẾCÁCKHỐIMẠCH DÃY VÀTỔHỢPTHÔNGDỤNG HÀ NỘI:Ngày 16 tháng 5 năm 2014 www.themegallery.com Khối chia số nguyên Khối nhân số nguyên Máy trạng thái hữu hạn Cáckhối nhớ Cáckhối cơ bản Cáckhối làm việc với số thực THIẾTKẾKHỐIMẠCH DÃY VÀTỔHỢPTHÔNGDỤNG www.themegallery.com I: Cáckhối cơ bản 1.1. Khối cộng đơn giản Khối cộng đơn giản: thực hiện phép cộng giữa hai số được biểu diễn dưới dạng std_logic_vector hay bit_vector. Các cổng vào gồm hạng tử A, B, bit nhớ Cin, các cổng ra bao gồm tổng Sum, và bit nhớ ra Cout: www.themegallery.com I: Cáckhối cơ bản Code mô tả như sau : Bo cong don gian library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; useIEEE.STD_LOGIC_UNSIGNED.ALL; entity adder32 is port( Cin : in std_logic; A : in std_logic_vector(31 downto 0); B : in std_logic_vector(31 downto 0); SUM : out std_logic_vector(31 downto 0); Cout: out std_logic ); end adder32; architecture behavioral of adder32 is signal A_temp : std_logic_vector(32 downto 0); signal B_temp : std_logic_vector(32 downto 0); signal Sum_temp : std_logic_vector(32 downto 0); begin A_temp <= '0'& A; B_temp <= '0'& B; sum_temp <= a_temp + b_temp + Cin; SUM <= sum_temp(31 downto 0); Cout <= sum_temp(32); end behavioral; www.themegallery.com I: Cáckhối cơ bản 1.2. Khối trừ Xét ví dụ A = 10 = 1010, B = 5 = 0101 biểu diễn d ới dạng số có dấu 5- bit ta phải thêm bit dấu bằng 0 ƣ vào trước. A = 01010, Bù2(A) = not (A) + 1 = 10101 + 1 = 10110 B = 00101, Bù2(B) = not (B) + 1 = 11010 + 1 = 11011 Tính A – B: A 01010 01010 - = - = + B 00101 11011 1 00101 Loại bỏ bit nhớ ở kết quả cuối cùng ta đ ợc A – B = 00101 = 5. ƣ www.themegallery.com I: Cáckhối cơ bản Dựa trên tính chất trên của số bù hai ta chỉ cần thực hiện một thay đổi nhỏ trong cấu trúc của bộ cộng để nó có khả năng thực hiện cả phép cộng lẫn phép trừ mà không làm thay đổi lớn về tài nguyên logic cũng như độ trễ của mạch. Tại đầu vào sẽ bổ xung thêm tín hiệu SUB, tín hiệu này quyết định sẽ thực hiện phép cộng hay phép trừ. Khi SUB = 1 để lấy bù 2 của B sẽ lấy đảo B và cho giá trị đầu vào Cin =1, để hiện thực trên mạch cấu trúc bộ cộng được bổ xung một khối MUX trước cổng B, khối này có hai đầu vào là B và not B, nếu SUB= 0 thì B được chọn, nếu SUB = 1 thì not B được chọn. Đầu vào Cin được OR với SUB trước khi vào bộ cộng. Σ www.themegallery.com I: Cáckhối cơ bản Code mô tả bộ cộng trừ như sau : library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity adder_sub is port( SUB : in std_logic; Cin : in std_logic; A : in std_logic_vector(31 downto 0); B : in std_logic_vector(31 downto 0); SUM : out std_logic_vector(31 downto 0); Cout: out std_logic ); end adder_sub; architecture rtl of adder_sub is signal B_temp : std_logic_vector(31 downto 0); signal Cin_temp : std_logic; component adder32 is port ( Cin : in std_logic; A : in std_logic_vector(31 downto 0); B : in std_logic_vector(31 downto 0); SUM : out std_logic_vector(31 downto 0); Cout : out std_logic ); end component; www.themegallery.com I: Cáckhối cơ bản Code mô tả bộ cộng trừ như sau : begin Cin_temp <= SUB or Cin; MUX32: process (B, SUB) begin if SUB = '1' then B_temp <= not B; else B_temp <= B; end if; end process MUX32; add: component adder32 port map (Cin_temp, A, B_temp, SUM, Cout); end rtl; www.themegallery.com I: Cáckhối cơ bản 1.3. Khối cộng thấy nhớ trước Độ trễ tổhợp của khối cộng gây ra bởi chuỗi bit nhớ, bộ cộng nối tiếp có đặc điểm là độ trễ cao do đặc điểm của chuỗi bit nhớ là bit nhớ sau phải đợi bit nhớ trước nó. www.themegallery.com I: Cáckhối cơ bản Như thấy trên hình vẽ thì thời gian trễ của chuỗi bit nhớ phải thông qua tối thiểu một cổng AND và một cổng OR, nếu là bộ cộng 32-bit thì tổng thời gian trễ là thời gian trễ của 32 cổng AND và 32 cổng OR. Trên thực tế độ trễ của cổng AND, cổng OR gần tương đương nên để đơn giản ta xem độ trễ của một trong hai cổng này là một lớp trễ hay một ―level logic. Nh vậy bộ cộng nối tiếp có 32x2 = 64 lớp trễ. Phép cộng là một ‖ ƣ phép toán cơ bản và sử dụng nhiều do vậy việc nghiên cứu, sử dụngcác thuật toán tăng tốc bộ cộng đã và đang đ ợc thực hiện rất nhiều. Trong phần này ta xem xét một thuật toán phổ biến nhằm rút ngắn thời gian thực hiện ƣ tính toán chuỗi bit nhớ là thuật toán Cộng thấy nhớ trước (Carry Look-Ahead Adder). Ý tưởng của phương pháp này là sử dụng sơ đồ có khả năng phát huy tối đa các phép toán song song để tính các đại lượng trung gian độc lập với nhau nhằm giảm thời gian đợi khi tính các bit nhớ. [...]...I: Cáckhối cơ bản www.themegallery.com I: Cáckhối cơ bản 1.4 Thanh ghi Thanh ghi là chuỗi các phần tử nhớ được ghép với nhau và là thành phần không thể thiếu của các thiếtkếmạch dãy, đặc điểm quan trọng nhất để phân biệt thanh ghi với cáckhốitổhợp là thanh ghi bao giờ cũng chịu sự điều khiển của xung nhịp đồng bộ, giá trị đầu ra là giá trị lƣu trong các ô nhớ của thanh ghi... www.themegallery.com II: Cáckhối nhớ 2.1 Bộ nhớ RAM RAM (Random Access Memory) là một phần tử rất hay được sử dụng trong thiết kếcác hệ thống số RAM có thể phân loại theo số lượng cổng và cách thức làm việc đồng bộ hay không đồng bộ của các thao tác đọc và ghi www.themegallery.com II: Cáckhối nhớ Single port RAM là RAM chỉ có một kênh đọc và ghi, một đường vào địa chỉ, các động tác đọc ghi trên... www.themegallery.com II: Cáckhối nhớ 2.3 Bộ nhớ FIFO FIFO (First-In-First-Out) là một khối nhớ đặc biệt, rất hay ứng dụng trong các hệ thống truyền dẫn số, dùng làm cáckhối đệm trong cácthiết bị lƣu trữ… www.themegallery.com II: Cáckhối nhớ Khối xác định trạng thái FIFO (FIFO_STATE) tạo ra hai tín hiệu FIFO_FULL, và FIFO_EMPTY để thông báo về tình trạng dầy hoặc rỗng t ƣơng ứng của bộ nhớ Để tạo ra các tín hiệu... đƣợc xác định thông qua giá trị của N, nếu N=0 thì LIFO_EMPTY = 1 và nếu N = 2addr_width – 1 thì LIFO_FULL = 1 www.themegallery.com III: khối nhân số nguyên 4.1 Khối nhân số nguyên không dấu dùng phương pháp cộng dịch www.themegallery.com III: khối nhân số nguyên Khối cộng có một hạng tử cố định K-bit là đầu vào tích riêng (opb), để tính các tích riêng sử dụng một khối chọn kênh MUX k-bit, khối này chọn... www.themegallery.com I: Cáckhối cơ bản 1.8 Thanh ghi dịch Thanh ghi có thể làm việc ở hai chế độ, chế độ thứ nhất dữ liệu đầu vào đ ƣợc lấy từ đầu vào D, chế độ thứ hai là chế độ dịch, khi đó dữ liệu đầu vào của thanh ghi lấy từ khối dịch, đầu ra của thanh ghi được gán bằng đầu vào của khối dịch Ở chế độ này dữ liệu sẽ bị dịch mỗi xung nhịp một lần www.themegallery.com I: Cáckhối cơ bản Mã mô tả thanh... bộ, giá trị đầu ra là giá trị lƣu trong các ô nhớ của thanh ghi đ ƣợc gán bằng giá trị của đầu vào tại các thời điểm nhất định (sườn dương hoặc sườn âm) theo điều khiển xung nhịp đồng bộ, nếu so sánh với khốitổhợp thì giá trị đầu ra của mạch tổhợp thay đổi tức thì ngay sau khi có sự thay đổi của các đầu vào Mô tả thanh ghi trên VHDL khá đơn giản như sau: library IEEE; use IEEE.STD_LOGIC_1164.ALL;... đếm cnt bị reset về 0 www.themegallery.com I: Cáckhối cơ bản 1.7 Bộ dịch Bộ dịch là khối logic tổhợp thực hiện động tác dịch chuỗi bít đầu vào, có tất cả 6 phép toán dịch gồm dịch trái logic, dịch trái số học, dịch phải logic, dịch phải số học, dịch tròn trái, dịch tròn phải www.themegallery.com I: Cáckhối cơ bản Ví dụ dưới đây là một bộ dịch với đầu vào 32-bit: library IEEE; use IEEE.STD_LOGIC_1164.ALL;... enable bằng 1 nếu cần ghi dữ liệu vào RAM Tín hiệu OE – output enable bằng 1 nếu là đọc dữ liệu từ RAM, với thiết kế như vậy thì WE và OE không bao giờ đồng thời bằng 1 www.themegallery.com II: Cáckhối nhớ 2.2 Bộ nhớ ROM ROM (Read-only Memory) là cấu trúc nhớ chỉ đọc trong đó các giá trị ô nhớ được lưu cố định khi khởi tạo ROM và không thay đổi trong quá trình sử dụng, thậm chí khi không có nguồn... (multiplicand) và 0 phụ thuộc vào bit t ƣơng ứng của số nhân (multiplier) là 1 hay 0 Để đ ƣa lần lƣợt các bit của số nhân vào cổng điều khiển cho khối chọn này thì giá trị của số nhân được lưu trong một thanh ghi dịch sang phải mỗi xung nhịp 1 bit Đầu vào thứ hai của bộ cộng lấy từ k bit cao của thanh ghi 2k-bit Thanh ghi này trong qua trình làm việc l ƣu trữ kết quả tích lũy của các tích riêng Đầu vào của... hiệu sườn dương của xung nhịp clk, một cách viết khác tương đương là if rising_edge(clk) then… www.themegallery.com I: Cáckhối cơ bản 1.5 Bộ cộng tích lũy Bộ cộng tích lũy là sự kết hợp giữa bộ cộng và thanh ghi, cấu trúc của khối này thể hiện ở hình dưới đây: www.themegallery.com I: Cáckhối cơ bản mô tả của bộ cộng tích lũy như sau: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; . TÀI THIẾT KẾ CÁC KHỐI MẠCH DÃY VÀ TỔ HỢP THÔNG DỤNG HÀ NỘI:Ngày 16 tháng 5 năm 2014 www.themegallery.com Khối chia số nguyên Khối nhân số nguyên Máy trạng thái hữu hạn Các khối nhớ Các khối. khối nhớ Các khối cơ bản Các khối làm việc với số thực THIẾT KẾ KHỐI MẠCH DÃY VÀ TỔ HỢP THÔNG DỤNG www.themegallery.com I: Các khối cơ bản 1.1. Khối cộng đơn giản Khối cộng đơn giản: thực. bản www.themegallery.com I: Các khối cơ bản 1.4. Thanh ghi Thanh ghi là chuỗi các phần tử nhớ được ghép với nhau và là thành phần không thể thiếu của các thiết kế mạch dãy, đặc điểm quan trọng