Bạn có thể thấy các chân đầu ra của người dùng rơi vào trạng thái bất ngờ trong giai đoạn khởi tạo Intel® Arria® 10.
Điều này là do logic người dùng và chân I/O của người dùng được kích hoạt một cách hoàn toàn, không cùng lúc trong giai đoạn khởi tạo.
Một ví dụ được hiển thị bên dưới. ( Hình của ví dụ )
- Chân đầu vào người dùng kết nối với cổng thiết lập hoạt động thấp của thanh ghi.
- Chân đầu vào của người dùng này được giữ ở mức thấp từ khi tắt nguồn đến chế độ người dùng.
- Một cổng đầu ra dữ liệu từ thanh ghi sẽ kết nối với chân đầu ra của người dùng.
Chân đầu ra người dùng dự kiến sẽ tiếp tục cao, vì các chân I/O người dùng đang ở trạng thái ba trạng thái đầu vào với khả năng kéo yếu trong giai đoạn cấu hình và trạng thái khởi tạo và thanh ghi dự kiến sẽ được đặt lên cao bởi cổng thiết lập trong chế độ người dùng.
Nhưng chân I/O của người dùng và logic sử dụng được kích hoạt một cách hoàn toàn trong giai đoạn khởi tạo. Khi thanh ghi và chân đầu ra người dùng được kích hoạt nhanh hơn cổng đầu vào và trạng thái ban đầu của thanh ghi thấp, chân đầu ra tuyên truyền thấp từ thanh ghi cho đến khi cổng đầu vào được kích hoạt và cổng thiết lập của thanh ghi trở nên thấp.
Khi thiết bị ngoài giám sát đầu ra từ thiết bị Intel Arria 10, trạng thái bất ngờ trong giai đoạn khởi tạo có thể ảnh hưởng đến hành vi của thiết bị bên ngoài.
Để giải quyết vấn đề này, hãy sử dụng một trong các cách sau.
- Giải pháp thay thế 1: Làm cho thiết bị bên ngoài bỏ qua trạng thái ghim đầu ra người dùng cho đến khi INIT_DONE chân cao (Hình giải pháp thay thế 1)
- Giải pháp thay thế 2: Giữ trạng thái đầu vào cho các thiết bị bên ngoài phù hợp bằng logic ngoài cho đến khi INIT_DONE chân cao (Hình giải pháp 2)
- Giải pháp 3: Giữ trạng thái đầu ra của thiết bị Arria 10 sử dụng logic người dùng cho đến khi tín hiệu INIT_DONE trong tăng cao (Hình dạng giải pháp 3)
Bạn có thể sử dụng tín INIT_DONE nội bộ với sự tức thì WYSIWYG sau.
<< Verilog >>
twentynm_controller u1 ( .initdonecore (< tên dây INIT_DONE thực>) );
<< VHDL >>
cấu phần twentynm_controller là
port(initdonecore: out STD_LOGIC );
thành phần cuối;
u1: trình điều twentynm_controller
bản đồ cổng(initdonecore => < tên INIT_DONE thực> );