Có gì sai với công tắc bật tắt D flip-flop của tôi?


7

Cho đến vài tuần trước, tôi chưa bao giờ vẽ sơ đồ mạch trong đời, vì vậy hãy kiên nhẫn với tôi. Tôi hiện đang cố gắng thiết kế (trong Logisim) một mạch hoạt động như một công tắc bật tắt, chỉ sử dụng các cổng logic cơ bản và không có đồng hồ. Về cơ bản, tôi muốn đầu ra LED bật khi nhấn và tắt nút SINGLE khi nhấn lại và tôi đã thử nghiệm tất cả các cách chốt SR / chốt / các kết hợp khác không có kết quả.

Tôi đang cố gắng thực hiện ngay bây giờ bằng cách thực hiện lật D từ đầu, với nút đóng vai trò là "đồng hồ" và đầu ra Q 'cuối cùng lặp lại xung quanh như đầu vào D trong chốt đầu tiên, như trong hình :

Tôi đã xem qua flip-flop này rất cẩn thận và tôi nghĩ rằng tôi đã có chủ và nô lệ xếp hàng chính xác, với các bộ biến tần ở đúng vị trí, v.v., nhưng theo Logisim , nó không đúng và không hoạt động . Tôi đang thiếu gì ở đây?


2
Rõ ràng không có gì sai nên vấn đề có thể là cấu hình công cụ hoặc vấn đề nối dây tinh tế. Tôi sẽ tách hai chốt ra và kiểm tra chúng một cách riêng biệt, nếu nó không hoạt động, thì hãy chia nó ra nhiều hơn để chỉ cổng, v.v. Một điều cần lưu ý, bạn không cần biến tần trên đầu vào cho AND cổng, bạn đã có sẵn các tín hiệu bổ sung (Q & Q ').
giữ chỗ

2
Tôi không thấy vấn đề với mạch của bạn. Bạn có chắc chắn công cụ của bạn có thể mô phỏng một mạch phản hồi như vậy? Tôi đã từng viết một trình mô phỏng logic đơn giản bằng cách truyền bá chiều sâu, điều làm tôi ngạc nhiên và kinh dị là KHÔNG thể mô phỏng các mạch như vậy.
Wouter van Ooijen

1
Để lặp lại những gì @WoutervanOoijen nói, có thể điều gì đó đơn giản như bạn đã không cung cấp đường ray điện cho các thiết bị hoặc mặt đất. Vì các kết nối nguồn được ẩn trong sơ đồ, bạn có thể đã quên hoặc cho rằng chúng được nối tự động.
giữ chỗ

Câu trả lời:


8

Tôi đã nhân đôi mạch của bạn trong Logisim (như một cơ hội để làm điều gì đó trong Logisim). Không có gì sai với mạch của bạn. Có điều gì đó về Logisim tôi không hiểu.

Trước hết, các dòng màu đỏ không phải là dòng ở trạng thái cao; chúng là lỗi Người ta sẽ mong đợi loại lỗi này nếu hai đầu ra được gắn với nhau. Tôi đã thực hiện một loạt các ngắt mạch và buộc các dòng cao hay thấp, và cuối cùng, tất cả các lỗi đã được "tuôn ra" và kết nối lại mạch thường tạo ra sự thay đổi mà nó được thiết kế để làm.

Cụ thể, ngắt dây trên cùng bên trái, dây kết nối Q 'với D, sau đó kết nối D với nguồn cao hoặc thấp ("điện trở kéo" hoạt động tốt ở đây) và chuyển đổi cho đến khi toàn bộ màu xanh lá cây. Sau đó, kết nối lại thông tin phản hồi, và tất cả sẽ hoạt động. Lưu ý rằng cao và thấp được thể hiện bằng màu xanh lá cây và màu xanh đậm (?).

Nhấn "Đặt lại Mô phỏng" sẽ đưa tất cả các lỗi trở lại. Tôi đoán là, ở đâu đó trong logic của chương trình, nó có một "trạng thái không xác định". Những trạng thái không xác định này lan truyền qua các cổng đến mức chúng không "tự sắp xếp" theo cách mà các thiết bị điện tử thực sự làm. Undef VÀ 0 sẽ dẫn đến 0, không phải Undef. Tương tự với 1 HOẶC Undef.

Chỉ trong trường hợp điều này đã được giải quyết trong phiên bản mới hơn, tôi sẽ lưu ý Logisim này là 2.7.1


Cập nhật: Dù sao tôi cũng đã "khắc phục" sự cố (trong phạm vi của trình giả lập này) bằng cách chèn một cổng NOR trong đường dẫn phản hồi. Sau đó kết nối một nút bấm với đầu vào khác. Tôi đã thay thế nút gốc bằng tín hiệu đồng hồ (được tìm thấy trong phần "nối dây"). Bây giờ, nhấn nút xóa lỗi. (Đặt lại logic mang lại lỗi).


Nếu có một số cách để xác định các điều kiện ban đầu cho một mô phỏng, bạn sẽ có thể xóa các lỗi mà không phải chỉnh sửa mạch trong quá trình mô phỏng. Đó chỉ là tự nhiên trình giả lập không biết trạng thái đầu ra ban đầu là gì nếu bạn không nói với nó; và đối với một toggler, nó không thể biết trạng thái tiếp theo là gì mà không biết trạng thái trước đó là gì.
Photon

Nhưng một cuộc sống thực không có vấn đề này.
gbarry

2
Bởi vì trong cuộc sống thực, sẽ có một số điện áp thực tế trên mỗi nút tại bất kỳ thời điểm nào. Nhưng một trình giả lập không biết điện áp đó ở mức t = 0 trừ khi bạn nói với nó. Trình giả lập chỉ có thể mô phỏng nhiều về thế giới thực như bạn xác định trong mô hình của mình.
Photon

Thêm thông tin này vào mô hình mạch của bạn sẽ dễ dàng. Trong SPICE, bạn sẽ sử dụng thẻ ".IC". Trong Verilog, bạn có thể ở khối "ban đầu". Không biết Logisim, tôi không thể cho bạn biết cách thực hiện trong công cụ đó, nhưng tôi nghi ngờ có một cách đơn giản.
Photon

2

Dựa trên phản hồi của gbarry, có vẻ như LogicSim đang sử dụng đánh giá logic "không biết" bi quan, có nghĩa là dây chỉ ở mức thấp nếu trình giả lập có thể nói rằng, với các kích thích nhận được cho đến nay, chúng chắc chắn sẽ ở mức thấp; tương tự, chúng chỉ cao nếu trình giả lập có thể nói rằng chúng chắc chắn phải cao. Đánh giá logic bi quan như vậy thường loại trừ việc mô phỏng các thiết bị có thể sẽ hoạt động tốt trong thế giới thực, nhưng nó có xu hướng đảm bảo rằng các thiết bị sẽ chỉ hoạt động như mong muốn trong mô phỏng nếu chúng thực sự hoạt động trong thế giới thực.

Nếu mạch được thực hiện với logic trong thế giới thực, mạch có thể sẽ ổn định để dây màu đỏ trên cùng cao hoặc thấp, nhưng mức thực tế của nó sẽ là tùy ý. Nhấn nút sẽ làm cho dây trên cùng giả định trạng thái đối diện với trạng thái trước khi ấn, nhưng vì trạng thái ban đầu đó không thể dự đoán được là cao hay thấp, cũng không thể là trạng thái sau khi đẩy.

Trong một số trường hợp, có thể hữu ích hơn khi có một trình giả lập tự động bật nguồn ở một số trạng thái cụ thể, hơn là chỉ đơn giản chỉ ra trạng thái không xác định chưa được giải quyết. Tuy nhiên, một mối nguy hiểm lớn với các trình giả lập làm như vậy là chúng có thể khiến người ta tin rằng một mạch sẽ hoạt động trong cuộc sống thực khi thực tế nó không hoạt động. Ngược lại, nếu một mô phỏng bi quan chỉ ra rằng các trạng thái không xác định được giải quyết, họ gần như chắc chắn sẽ làm như vậy trong thế giới thực; nếu không, các trạng thái như vậy có thể hoặc không thể được giải quyết trong thế giới thực, nhưng người ta không nên dựa vào hành vi đó trừ khi người ta đã kiểm tra các ràng buộc thời gian rất cẩn thận.


0

Tôi vô tình sắp xếp vấn đề này.

Bạn chỉ cần thay thế AndGates của bạn IC 74LS08cùng với NOT. Tần số của đồng hồ là 0.5và đầu vào đầu tiên j=0k=0sau vài giây Flip flop của bạn sẽ bắt đầu hoạt động.

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.