Chương 1: Cơ Sở Lý Thuyết 1.1 Flip Flop D truyền thống Kiến trúc flip flop D truyền thống được giới thiệu là một kiến trúc tốc độ cao và ổn định, được sử dụng trong lưu trữ dữ liệu và thanh ghi dịch. Một flip flop D cấu tạo bằng cách nối phần hai giống nhau, với phần bên trái được gọi là slave và phần bên phải gọi là master (hình 1). Hình 1: Flip Flop D truyền thống [9] Slave và master đều có phần đầu là hai CMOS song song với nhau đóng vai trò như một khóa K, tiếp theo là dãy bốn cmos nối tiếp có thề xem là tương đương với 1 khóa K và một cổng đảo, cuối cùng nối với là một cổng đảo (hình 2) 4 2 4 1 3 Hình 2: Mạch flip flop D tương đương [10] Trong master hoặc slave có hai cổng đảo nối vòng với nhau, đây là kiến trúc dùng để lưu trữ dữ liệu. Hai khóa K có trạng thái đối lập nhau nhằm mục đích cập nhật dữ liệu cho hai cổng đảo lưu trữ.
Trong khi xung clk mức thấp khóa 1 sẽ đóng và khóa 2 mở, khóa 2 ngắt tạm thời kết nối của hai cổng đảo để cho dữ liệu d có thể cập nhật thông qua khóa 1 đang mở, kiến trúc lưu trữ dữ liệu đã thành công lưu giá trị d, lúc này khóa 3 mở nên dữ liệu chưa truyền sang master. Khi xung clk bắt đầu chuyền mạch từ mức thấp lên cao, khóa 1 mở ngăn cho cập nhật dữ liệu đồng thời khóa 3 đóng và khóa 4 ngắt kết nối 2 cổng đảo giúp cho master có thể cập nhật giá trị d, khóa 1 lúc này đóng nên không còn có thể cập nhật giá trị nữa, tức là bộ slave sẽ cập nhật giá trị khi clk mức thấp, đến khi gặp clk cạnh lên master sẽ được cập nhật dữ liệu. hoạt động flip flop D thể hiện trong bảng sau. Bảng 1: Bảng trạng thái của flip flop D D CLK Q 0 0 1 1 Kiến trúc flip flop D truyền thống tiêu thụ một lượng công suất khá đáng kể, vì vậy bài báo cáo này giới thiệu một kiến trúc latch thay thế mang tên “static sense amplifier flip flop” viết tắt là SSAFF.2 SSAFF flip flop Kiến trúc flip flop mang tên “Static differential sense amplifier flip flop” viết tắt là SSAFF, đây là một kiến trúc tạo nên từ hai khối latch ghép lại, mỗi latch đóng vai trò là slave và master.
Đây là kiến trúc được giới thiệu với ít trở tải xung clk, khi cần dưới 4 CMOS nối với clk thay vì 10 CMOS như flip flop D truyền thống (hình 3) RST 0.5 Hình 3: SSAFF tích cực cạnh lên [9] Tương tự với flip flop truyền thống SAFF cũng có hai phần slave bên trái và master bên phải, Khi xung CLK mức 0, trong khối slave bên trái NMOS của xung CLKB sẽ dẫn tùy thuộc vào tín hiệu D và D đảo (DB), nếu tín hiệu D mức 1 NMOS xung D dẫn khiến kho dòng phía bên tay trái của 2 cổng đảo kéo xuống đất tương đương với mức 0, và dòng bên phải sẽ là mức đảo của mức 0 là mức 1, nếu D là mức 0 thì trạng thái sẽ ngược lại, bên trái mức 1 và bên phải mức 0, tại thời điểm này CLK mức 0 nên master sẽ không cập nhật dữ liệu do NMOS nối với CLK ngắt dòng. Nếu CLK bắt đầu chuyển từ 0 lên 1, bên slave đã hoàn thành việc cập nhật và không cập nhật thông qua NMOS của CLKB nữa mà chuẩn bị cập nhật tới master, Tương tự slave khi CLK cạnh lên NMOS của xung CLK sẽ dẫn và cập nhật dữ liệu, dữ liệu này được quyết định bởi D từ slave trước đó. Vậy nên nhìn chung hoạt động giống như flip flop truyền thống cập nhật cho slave và sau đó ngắt cập nhật slave để 6 cập nhật cho master và flip flop SSALA có bảng trạng thái trùng với flip flop tuyền thống. Hình 3 là flip flop tích cực cạnh lên.
Để thiết kế một flip flop tích cực mức thấp ta đảo vị trì hai xung CLK (hình 4) Hình 4: SSAFF tích cực cạnh xuống Ngược lại với flip flop tích cực cạnh lên slave sẽ cập nhật giá trị khi clk mức 1 và chuyền đến master khi clk cạnh xuống. Xung RST (reset) có tác dụng đặt giá trị flip flop về mặc định Q mức 0. Kiến trúc SSAFF có thể dùng trong thanh ghi dịch vào nối tiếp ra song song, nhưng để làm thanh ghi vào song song ra nối tiếp ta cần kiến trúc phức tạp hơn.3 Flip Flop Dịch hai chiều Flip flop dịch hai chiều dùng để cấu tạo nên thanh ghi dịch hai chiều. Mỗi flip flop được gắn với một bộ ghép kênh 2-1, để chọn tín hiệu D của flip flop từ tín hiệu nối tiếp hoặc song song (hình 5).
Hình 5: Flip Flop Dịch hai chiều Bộ ghép kênh tạo từ hai cổng AND và một cổng OR, tín hiệu SL dùng để chọn kênh nếu SL là mức 1 AND bên dưới sẽ hoạt động và lấy tín hiệu song song (DP), ngược lại SL mức 0 thì AND bên trên sẽ hoạt động và lấy tín hiệu nối tiếp (DS). Để tối giản kích thước cũng như công suất tiêu thụ trong kiến trúc flip flop hai chiều truyền thống, chúng tôi giới thiệu một kiến trúc flip flop hai chiều mới dựa trên kiến trúc SSAFF 1.4 Flip Flop SSAFF Dịch hai chiều Flip flop hai chiều SSAFF, có thêm một bộ cập nhật dữ liệu tại khối slave được đặt ở phía trên, trong đồ án này khối cập nhật bên dưới sẽ là cập nhật tín hiệu nối tiếp (DS), khối bên trên là tín hiệu song song (DP). Tại một thời điểm chỉ có một khối trên hoặc dưới hoạt động (nối tiếp hoặc song song), nên cần thêm 2 NMOS với tín hiệu SL và SLB để lựa chọn khối trên hoặc dưới. Tức là SL có nhiệm vụ chọn cập nhật tín hiệu bên trên bên dưới, trong đồ án này phần cập nhật tín hiệu bên trên được nối với tín hiệu song song còn cập nhật tín hiệu bên dưới sẽ là tín hiệu nối tiếp.5 Giao tiếp Serial Peripheral Interface (SPI) Chuẩn giao tiếp SPI là chuẩn giao tiếp nối tiếp đồng bộ, và truyền dữ liệu trong khoảng cách ngắn.
SPI giao tiếp ở chế độ full duplex tín hiệu sẽ truyền cả hai chiều từ slave và master, SPI còn biết đến là giao tiếp bốn dây (hình 7). Hình 7: Giao tiếp SPI Giao tiếp SPI có bốn dây lần lượt SCLK là xung clk được tạo từ master, MOSI là dữ liệu được gửi từ master đến slave, MISO là dữ liệu được gửi từ slave đến master, SS dùng để chọn slave giao tiếp. Bốn chân trên còn có tên gọi khác lần lượt là SCK, COPI, CIPO, CS 10 Hình 8: Hoạt động của SPI Khi bắt đầu truyền dữ liệu master sẽ gửi một xung tín hiệu đề chọn slave qua chân CS, trong khi CS mức 0, dữ liệu sẽ bắt đầu được truyền thông qua chân COPI và CIPO đồng thời với xung clk qua chân SCK. Dữ liệu sẽ được lấy mẫu ỡ giữa của mỗi bit dữ liệu.
Ở mỗi bến bit MSB sẽ được truyền đi trước, và mỗi khi slave thành công lấy mẫu được một bit thì master cũng lấy mẫu được một bit. Việc chuyền dữ liệu song công diễn ra ngay cả khi chỉ cần giao tiếp một chiều. Trong đề tài này tốc độ của mạch SPI sẽ hoạt động theo chu kỳ 40ns. 11 Chương 2: Thiết Kế Mô Hình 2.1 Thiết kế tổng quan Hình 9: Sơ đồ khối tổng quan 12 Kiến trúc SPI được thiết kế với giao tiếp dữ liệu giữa master và bốn slave.
Dữ liệu 8 bit (D0-7) cần giao tiếp sẽ được đưa song song vào master, và truyền nối tiếp qua MOSI đến slave cần giao tiếp, sử dụng SCK để lấy mẫu và xung kích hoạt SS để kích hoạt slave. Trong lúc truyền từ master sang slave, slave cũng truyền ngược lại master qua chân MISO. SPI dùng tín hiệu kích hoạt (ENABLE) để mạch bắt đầu chuyền dữ liệu. Và để chọn slave tương ứng hai chân chọn tín hiệu (SELECT) sẽ được dùng để chọn bốn slave tương ứng.2 Kiến trúc SPI truyền thống a.
Khối tạo xung kiến trúc truyền thống Khối tạo xung của kiến trúc ứng dụng flip flop D truyền thống sẽ khác với kiến trúc đề xuất dựa vào tín hiệu EN không có clock gating, bộ đếm mod 10 sử dụng flip flop D sẽ đếm trong khi xung EN mức 1 nhằm tạo ra tín hiệu có độ dài chín chu kỳ. Tương tự với bộ tạo xung của đề xuất, chúng ta cần tín hiệu kích hoạt 8 chu kỳ để tạo xung SCK và 9 chu kỳ để kích hoạt slave. Hình 10: Khối tạo xung mạch truyền thống Đầu ra mạch đếm sẽ đi qua cổng OR bốn ngõ vào, kết quả sẽ là 1 xung kích hoạt 9 chu kỳ (EN8), chu kỳ đầu tiên là 4 bits 0000 nên xung kích hoạt chỉ có 9 chu kỳ. Để tạo xung kích hoạt 8 chu kỳ, ta dùng cổng NAND với ngõ vào Q3 và Q0 để khi tới trạng thái 1001 sẽ 13 khiến cho bits cuối cùng của xung kích hoạt thành mức 0 ta có xung ENCLK, ENCLK sau đó NAND với CLK để tạo nên xung SCK.
Hai flip flop dùng để ổn định và triệt thiêu nhiễu cho hai tín hiệu kích hoạt EN8 và ENCLK Hình 11: Dạng sóng của bộ tạo xung truyền thống Đối với xung kích hoạt để chuyền tín hiệu trong kiến trúc ứng dụng flip flop D truyền thống, xung EN sẽ mức 1 trong suốt quá trình chuyền dữ liệu và sẽ không chuyển dữ liệu khi mức 0, trong hình 11 là xung EN mức 1. Thay vì kích hoạt xung EN mỗi khi cần giao tiếp, sử dụng xung EN mức 1 trong suốt quá trình cần giao tiếp sẽ tiết kiệm hơn hai chu kỳ trong trường hợp tín hiệu cần giao tiếp liên tiếp nhau (nghỉ một chu kỳ để tới lần chuyền tín hiệu kế tiếp thay vì ba chu kỳ khi kiến trúc đề xuất). Thanh ghi dịch hai chiều trong khối master Thanh ghi dịch hai chiều chỉ sử dụng tín hiệu từ chân SL để làm tín hiệu kích hoạt, tín hiệu SL sẽ được nối với tín hiệu kích hoạt 9 bits (EN8), hoạt động của thanh ghi dịch truyền thống khá tương đồng với thanh ghi dịch đề xuất (hình 12) 14 kiến trúc truyền thống Hình 12: Thanh ghi dịch hai chiều Khi EN8 mức 0 sẽ dịch tín hiệu song song, nếu mức 1 sẽ dịch nối tiếp. Tín hiệu song song lấy từ 8 chân DP0 tới DP7 riêng tín hiệu nối tiếp của flip flop đầu tiên và tính iệu song song flip flop cuối cùng sẽ nối với nguồn để tạo đầu ra mức 1 khi nhàn rỗi.