Tại sao chúng ta đồng hồ Flip Flops?


19

Tôi đang cố gắng để hiểu Flip Flops & Latches. Tôi đang đọc từ cuốn sách Logic kỹ thuật số của Morris Mano. Một điều tôi không thể hiểu là tại sao chúng ta đồng hồ dép?

Tôi hiểu lý do tại sao chúng ta cần chốt 'kích hoạt' hoặc chốt. Nhưng sử dụng đồng hồ là gì? Tôi không thể hiểu điều này. Tại sao chúng ta không thể kích hoạt các flip-flop cần thiết và cung cấp cho chúng đầu vào? Khi chúng ta thay đổi đầu vào, đầu ra thay đổi. Tại sao chúng ta phải thay đổi đầu ra với cạnh đồng hồ tăng hoặc giảm (trong trường hợp cạnh được kích hoạt flipflop)?

Bất kỳ trợ giúp liên quan đến điều này được đánh giá cao.

Câu trả lời:


18

Một lý do khiến chúng ta đồng hồ lật để không có sự hỗn loạn khi đầu ra của dép lật được đưa qua một số chức năng logic và quay lại đầu vào của chính chúng.

Nếu đầu ra của flip-flop được sử dụng để tính toán đầu vào của nó, nó sẽ xử lý chúng ta có hành vi có trật tự: để ngăn trạng thái của flip-flop thay đổi cho đến khi đầu ra (và do đó đầu vào) ổn định.

Đồng hồ này cho phép chúng ta xây dựng các máy tính, là các máy trạng thái: chúng có trạng thái hiện tại và tính toán trạng thái tiếp theo của chúng dựa trên trạng thái hiện tại và một số đầu vào.

Ví dụ: giả sử chúng tôi muốn xây dựng một cỗ máy "tính toán" số lượng 4 bit tăng dần từ 0000 đến 1111, sau đó kết thúc khoảng 0000 và tiếp tục. Chúng ta có thể làm điều này bằng cách sử dụng một thanh ghi 4 bit (là một ngân hàng gồm bốn flip-flop). Đầu ra của thanh ghi được đặt thông qua hàm logic tổ hợp có thêm 1 (bộ cộng bốn bit) để tạo ra giá trị tăng dần. Giá trị này sau đó chỉ đơn giản là được đưa trở lại vào thanh ghi. Bây giờ, bất cứ khi nào cạnh đồng hồ đến, thanh ghi sẽ chấp nhận giá trị mới cộng với giá trị trước đó. Chúng tôi có một hành vi có trật tự, có thể dự đoán được, bước qua các số nhị phân mà không gặp trục trặc.

Hành vi đồng hồ cũng hữu ích trong các tình huống khác. Đôi khi một mạch có nhiều đầu vào, không ổn định cùng một lúc. Nếu đầu ra được sản xuất tức thời từ đầu vào, thì nó sẽ hỗn loạn cho đến khi đầu vào ổn định. Nếu chúng ta không muốn các mạch khác phụ thuộc vào đầu ra nhìn thấy sự hỗn loạn, chúng ta sẽ tạo ra mạch đồng hồ. Chúng tôi cho phép một lượng thời gian hào phóng để các đầu vào lắng xuống và sau đó chúng tôi chỉ ra cho mạch chấp nhận các giá trị.

Đồng hồ cũng vốn là một phần của ngữ nghĩa của một số loại dép xỏ ngón. AD flip flop không thể được xác định mà không có đầu vào đồng hồ. Nếu không có đầu vào đồng hồ, nó sẽ bỏ qua đầu vào D của nó (vô dụng!) Hoặc đơn giản là sao chép đầu vào mọi lúc (không phải là flip-flop!) Một flip-flop RS không có đồng hồ, nhưng nó sử dụng hai đầu vào để kiểm soát trạng thái cho phép các đầu vào "tự đồng hồ": nghĩa là các đầu vào, cũng như các kích hoạt cho thay đổi trạng thái. Tất cả các flip flop cần một số kết hợp đầu vào mà chương trình trạng thái của chúng, và một số kết hợp đầu vào cho phép chúng duy trì trạng thái của chúng. Nếu tất cả các kết hợp đầu vào kích hoạt lập trình, hoặc nếu tất cả các kết hợp đầu vào bị bỏ qua (trạng thái được duy trì), điều đó không hữu ích. Bây giờ đồng hồ là gì? Một chiếc đồng hồ là một đặc biệt, đầu vào chuyên dụng giúp phân biệt xem các đầu vào khác có bị bỏ qua không, hoặc liệu chúng có lập trình cho thiết bị hay không. Thật hữu ích khi có cái này như một đầu vào riêng biệt, thay vì nó được mã hóa giữa nhiều đầu vào.


Nó có ý nghĩa khi bạn giải thích nhu cầu của đồng hồ cho máy đếm hoặc máy trạng thái. Nếu hoàn toàn không có đồng hồ, thì bộ đếm cứ thay đổi giá trị của nó (& đặt lại) & bắt đầu vô tận? và tương tự với máy trạng thái. (Từ những gì tôi đọc được từ wiki, bộ đếm chỉ là một loại máy trạng thái, vì các trạng thái đang được thay đổi). Nhưng ngay cả với các thanh ghi chúng ta cũng sử dụng đồng hồ, trong trường hợp đó tại sao? Tôi cũng muốn biết có bất kỳ flipflops (có thể) được sử dụng trong bất kỳ ứng dụng nào mà không có đồng hồ không?
avi

Bây giờ đến thời điểm ổn định, nếu đầu ra liên tục thay đổi thì các thiết bị khác cần đầu ra flipflops sẽ không thể nhận được chính xác và có thể có hành vi thất thường. Vì vậy, vấn đề ổn định này là? Bây giờ tôi đang cố gắng để hiểu khái niệm về sự ổn định. Đặc biệt là hai loại ký sinh trùng mà bạn đã giải thích: "để ngăn trạng thái của flip-flop thay đổi cho đến khi đầu ra (và do đó đầu vào) ổn định." "Đôi khi một mạch có nhiều đầu vào, không ổn định cùng một lúc"
avi

7

Một flip flop cạnh tăng có thể được hình dung là hai chốt quay trở lại, một trong số đó được kích hoạt ngay sau khi tín hiệu đồng hồ xuống thấp và vẫn được bật cho đến khi nó lên cao; cái thứ hai được kích hoạt ngay sau khi đồng hồ lên cao và vẫn được bật cho đến khi nó xuống thấp. Có một khoảnh khắc ngắn trong đó không bật flip flop có nghĩa là đầu ra của flip flop có thể được đưa trở lại đầu vào một cách an toàn thông qua logic tổ hợp. Thay đổi đầu ra trên một chu kỳ đồng hồ có thể khiến đầu vào thay đổi, nhưng thay đổi đầu vào đó sẽ không có bất kỳ ảnh hưởng nào cho đến chu kỳ xung nhịp tiếp theo.

Trong lịch sử, nó thường khá phổ biến đối với các thiết bị kỹ thuật số sử dụng cái gọi là "đồng hồ hai pha", có hai dây đồng hồ cao cho các khoảng không chồng chéo trong mỗi chu kỳ. Tất cả các chốt được chia thành hai nhóm, với một đồng hồ kiểm soát nhóm chốt đầu tiên và đồng hồ khác kiểm soát nhóm thứ hai; trong hầu hết các trường hợp, đầu ra của mỗi nhóm chỉ được sử dụng để tính toán đầu vào của nhóm khác. Mỗi chu kỳ đồng hồ bao gồm một hoặc nhiều xung trên đồng hồ đầu tiên, ít nhất một trong số đó phải đáp ứng các thông số kỹ thuật có độ dài tối thiểu và một hoặc nhiều xung trên giây (cùng yêu cầu). Một lợi thế của thiết kế như vậy là nó có thể rất khoan dung với độ lệch của đồng hồ với điều kiện là thời gian chết giữa các pha của đồng hồ vượt quá số lượng lệch của đồng hồ.

Một cách tiếp cận "hiện đại" hơn là để mọi phần tử chốt (thanh ghi) nhận được một dây đồng hồ duy nhất và về cơ bản tạo ra các đồng hồ không chồng chéo bên trong của chính nó. Điều này đòi hỏi độ lệch đồng hồ tối đa không vượt quá thời gian lan truyền tối thiểu giữa các thanh ghi, nhưng các công cụ hiện đại giúp kiểm soát độ lệch của đồng hồ chính xác hơn so với những thập kỷ trước. Hơn nữa, trong nhiều trường hợp, xung nhịp một pha làm cho các thiết kế đơn giản hơn bằng cách loại bỏ nhu cầu phân vùng logic thành hai nhóm.


2

Chúng ta đều biết rằng các mạch thực kỹ thuật số sẽ chứa rất nhiều cổng. Một tín hiệu có thể phải đi qua nhiều đường dẫn để đến cổng cuối cùng cung cấp đầu ra. Một tín hiệu mất một khoảng thời gian để "truyền" trên các đường khác nhau đến cổng cuối cùng. Thời gian để tuyên truyền không giống nhau trên các con đường khác nhau. Điều này dẫn đến những gì chúng ta gọi là trục trặc. Sự cố xảy ra do một số đường dẫn ngắn hơn các đường khác và khi tín hiệu đến cổng cuối cùng trước đó đi theo đường ngắn hơn, nó sẽ tác động ngay lập tức trước khi các tín hiệu khác trên đường dài hơn tới cổng. Đầu ra mà kết quả này trong giây lát là sai và có thể trở nên nguy hiểm trong một mạch kỹ thuật số dẫn đến lỗi lan truyền.

Bây giờ tôi đến lý do tại sao chúng ta cần một chiếc đồng hồ. Một đồng hồ về cơ bản "đồng bộ hóa" mạch thành một tín hiệu bên ngoài. Hãy nghĩ về nó như một nhịp mà mạch được điều chỉnh để thích âm nhạc. Mọi thứ xảy ra đồng điệu với đồng hồ này, không có đồng hồ = mạch bị tắt. Bằng cách sử dụng đồng hồ, chúng tôi đảm bảo rằng các phần khác nhau của mạch hoạt động hài hòa cùng một lúc . Bằng cách này, hành vi của mạch là dễ dự đoán hơn. Nó cũng ít bị ảnh hưởng bởi những thay đổi trong độ trễ lan truyền theo nhiệt độ và sự thay đổi sản xuất. Điều này bao gồm đồng hồ.

Dép xỏ ngón là những phần tử mạch kỹ thuật số như vậy có tác dụng (thay đổi đầu ra của chúng để đáp ứng với đầu vào tại cổng đầu vào của chúng) khi xảy ra "CLOCK EDGE". Cạnh đồng hồ là khi tín hiệu đồng hồ đi từ 0 đến 1 hoặc từ 1 đến 0. Chỉ cần vẽ một sóng đồng hồ và bạn sẽ biết ý tôi là gì. Có một nhóm yếu tố khác gọi là chốt, đầu ra của chốt thay đổi để phản ánh đầu vào khi tín hiệu điều khiển nhất định ở mức logic cụ thể LEVEL và không chờ bất kỳ cạnh nào, tín hiệu điều khiển này được gọi là ENABLE trong chốt. Chốt có thể hoạt động khi bật là 1 và thay đổi đầu ra của chúng hoặc khi bật là 0. Nó phụ thuộc vào loại chốt. Ngược lại Flips flops thực sự làm một cái gì đó chỉkhi chúng được cho ăn bằng đồng hồ EDGE. Xin lưu ý sự khác biệt này giữa chốt và dép xỏ ngón, và hãy nhớ rằng các chốt được kết nối với nhau để tạo ra một cú lật sao cho việc kích hoạt chỉ khiến cho dép lật làm gì đó khi cạnh đồng hồ xảy ra. Trong trường hợp này, chúng tôi đặt tên cho tín hiệu Bật thành Đồng hồ và nó cũng có ý nghĩa hơn. Đồng hồ cho con người đi tích tắc tích tắc, flip flop làm một cái gì đó chỉ ở tích tắc và KHÔNG CÓ ở giữa các tích tắc.

Nếu vẫn chưa rõ ràng, bạn sẽ được hưởng lợi bằng cách xem bài giảng nptelhrd trên youtube từ Viện Công nghệ Ấn Độ về Mạch kỹ thuật số.


"Bằng cách sử dụng đồng hồ, chúng tôi đảm bảo rằng các phần khác nhau của mạch hoạt động hài hòa cùng một lúc." - làm thế nào để chúng tôi làm điều này? Tôi sẽ kiểm tra các video.
avi

Xin lưu ý rằng flip flop là các thiết bị thay đổi đầu ra của chúng để phản ánh đầu vào ở cạnh tăng (hoặc cạnh giảm nếu đó là cạnh lật được kích hoạt flop) của tín hiệu điều khiển cho cạnh lật được kích hoạt. Tín hiệu điều khiển này được gọi là đồng hồ do tính chất định kỳ của nó, giống như tiếng tích tắc của đồng hồ treo tường của chúng tôi. Nếu tín hiệu đồng hồ xuất hiện, flip flop sẽ làm một cái gì đó, nếu không đầu vào sẽ không làm bất cứ điều gì xảy ra với đầu ra. Xin vui lòng biết sự khác biệt và tương đồng giữa chốt và dép xỏ ngón từ giai đoạn đầu cũng để không bị nhầm lẫn.
quantum231

1

Có những thứ như quầy không đồng bộ. Đây là một: - nhập mô tả hình ảnh ở đây

Nó còn được gọi là bộ đếm gợn bởi vì khi một xung đầu vào đến đầu vào (thay đổi trạng thái của lần lật thứ 1), sự thay đổi trạng thái đó sẽ mất một khoảng thời gian hữu hạn để gợn qua các lần lật còn lại. Trong khoảng thời gian nhỏ nhưng hữu hạn đó, các đầu ra ABCD sẽ có giá trị nhất thời không thể đoán trước cho đến khi lần lật cuối cùng đã ổn định.

Nếu các đầu ra ABCD sau đó được cung cấp thông qua các flip-flop loại D và được nối với nhau, một thời gian sau thời gian giải quyết, phiên bản ABCD "tốt hơn" này sẽ không bao giờ "hiển thị" hành vi nhất thời này.

Để tránh điều này các kỹ sư đôi khi sử dụng các mạch đồng hồ đồng bộ. Xin lỗi, đầu vào là từ bên trái trên bản đồ này và ánh xạ Q0 đến Q3 sang ABC và D trên sơ đồ trước: -

nhập mô tả hình ảnh ở đây

Nó phức tạp hơn một chút nhưng nó nhanh hơn và có ít bộ phận hơn so với bộ đếm không đồng bộ với một loạt các loại D trên đầu ra.


Vâng, với quầy nó có ý nghĩa. Nhưng có ứng dụng nào mà flipflops được sử dụng mà không có đồng hồ không? hoặc flipflops không bao giờ có thể được sử dụng mà không có đồng hồ?
avi

@avi Ví dụ đầu tiên (bộ đếm không đồng bộ) không phải được coi là lấy đầu vào từ "đồng hồ". Nó có thể là các xung đến từ một cảm biến từ tính để xem trục quay nhanh như thế nào. Sẽ có một đồng hồ "chính" trên hệ thống "cổng" đếm mỗi giây nhưng "tín hiệu" đi vào quầy không nhất thiết phải là đồng hồ. Đầu ra từ một bộ so sánh tương tự có thể "xung nhịp" 1 "với đầu ra của loại D và đầu ra từ một bộ so sánh tương tự khác có thể đặt lại loại D - điều này có thể được sử dụng để tạo tín hiệu thu được từ dạng sóng tương tự - không có đồng hồ như vậy
Andy aka

Tôi sẽ coi hành vi của một bộ đếm Ripple là định lượng hơn là khác biệt về chất với bộ đếm đồng bộ. Đầu ra của cả hai bộ đếm sẽ trở nên không hợp lệ trong một khoảng thời gian sau khi xung đồng hồ đến và sẽ trở lại hợp lệ trong một khoảng thời gian sau đó. Bộ đếm đồng bộ sẽ có một cửa sổ nhỏ hơn trong đó các đầu ra của nó không hợp lệ, nhưng cửa sổ sẽ khác không trong mọi trường hợp. Cũng đáng lưu ý rằng tốc độ đếm tối đa với bộ đếm như được vẽ sẽ bị giới hạn bởi chiều dài bộ đếm. Người ta có thể tránh được giới hạn đó ...
supercat

... bằng cách bắt đầu chuỗi mang ở ví dụ bit thứ tư, tạo ra "và" của ba bit đầu tiên, và sau đó mỗi bit chỉ lật nếu đầu vào từ chuỗi mang cao, bit 2 cao, bit 1 là cao, và bit 0 là cao. Ngay cả khi bảy xung đếm đến đúng lúc cần thiết để tín hiệu truyền qua chuỗi mang, điều đó sẽ không có vấn đề gì vì chuỗi mang sẽ bắt đầu truyền tín hiệu khi số xxx11 ... 111000 đạt được nhưng đầu ra của nó sẽ không thành vấn đề cho đến khi xung đồng hồ sau xxx111 ... 111111 đã đạt được.
supercat

Bộ đếm Ripple rất đơn giản nhưng bị gièm pha trong thế giới thực của các mạch kỹ thuật số mà tôi làm việc. Thật tốt khi biết rằng chúng tồn tại nhưng rất khó có khả năng bạn sẽ được phép sử dụng chúng cho các dự án thực. Nó luôn có thể được sử dụng trong các bài tập tầm thường trong đó bản chất "không đồng bộ" của chúng không phải là vấn đề.
quantum231

0

Bởi vì việc thiết kế các hệ thống đồng bộ dễ dàng hơn (hệ thống đồng bộ có nghĩa là bất kỳ tập hợp logic tổ hợp và flip-flop) nào so với các hệ thống không đồng bộ và các hệ thống đồng bộ đáng tin cậy hơn. Tuy nhiên, thiết kế máy trạng thái không đồng bộ đáng để nghiên cứu vì nó có thể tính toán một đầu ra nhanh hơn nhiều và có công suất thấp hơn một hệ thống đồng bộ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.