Tôi đang sử dụng trình mô phỏng GUI và cả hai đều có vẻ giống nhau.
Trả lời
link giải thích điều này ở một mức độ nào đó.
$stop - When Verilog encounters a $stop, it pauses as if you sent a Ctrl-C.
$finish - Verilog exits as if you sent Ctrl-D when it encounters $finish.
Lấy từ trang 15 của indtroduction PDF này.
cổ vũ
$finish
thoát các mô phỏng và kiểm soát lại hệ điều hành.
$stop
tạm dừng mô phỏng và đặt trình mô phỏng trong chế độ tương tác.
Một quick reference link:
$finish;
Finishes a simulation and exits the simulation process.
$stop;
Halts a simulation and enters an interactive debug mode.
Theo IEEE tiêu chuẩn cho Verilog (1364-2005 Mục 17.4, "hệ thống nhiệm vụ kiểm soát mô phỏng"), $stop
nên đình chỉ việc mô phỏng, và $finish
nên làm cho điều khiển thoát và điều khiển vượt qua trở lại hệ điều hành máy chủ. Tất nhiên, các trình mô phỏng khác nhau có thể thực hiện các đặc điểm kỹ thuật theo các cách khác nhau một cách tinh tế và không phải tất cả các trình mô phỏng đều tuân thủ 100% thông số kỹ thuật.
Tài liệu cho trình mô phỏng của bạn có thể cung cấp mô tả chi tiết hơn về hành vi của nó, đặc biệt là đối với GUI so với chế độ dòng lệnh.
$ stop: Kết thúc mô phỏng không mong muốn. Tất cả các hoạt động của hệ thống đều bị treo. $ finish: Được sử dụng để giảm trình biên dịch.
Tương tự tốt sẽ là kết thúc $ giống như tắt máy tính của bạn và $ stop giống như đột ngột kéo phích cắm của nó.
$ stop - Tạm dừng mô phỏng, vì vậy bạn có thể tiếp tục bằng cách sử dụng lệnh fg trong linux. Trong trường hợp này lincense sẽ không được phát hành và quá trình cũng không bị giết, tiêu thụ bộ nhớ.
$ kết thúc - Mô phỏng hoàn tất, vì vậy việc cấp phép và hủy quá trình sẽ được thực hiện.
Tôi đang sử dụng GUI Modelsim. Khi tôi có một tuyên bố $ stop trong mô phỏng, nó như thể tôi nhấn nút dừng ở trên cùng của GUI trong khi chạy mô phỏng. Tuy nhiên nếu tôi có một tuyên bố kết thúc $, GUI sẽ hiển thị một dấu nhắc thoát yêu cầu tôi nếu tôi muốn bỏ hoàn toàn modelsim.
- 1. Sự khác biệt giữa Verilog! và ~?
- 2. Trong Python, sự khác nhau giữa ".append()" và "+ = []" là gì?
- 3. Sự khác nhau giữa == và = trong Prolog là gì?
- 4. Sự khác nhau giữa // và /// trong Visual Studio là gì?
- 5. Sự khác nhau giữa: = và + = trong tạo tệp là gì?
- 6. Sự khác nhau giữa * và. * Trong MATLAB là gì?
- 7. Sự khác nhau giữa $ @ và $ * trong UNIX là gì?
- 8. Sự khác nhau giữa: = và = trong MySQL là gì?
- 9. Sự khác nhau giữa "||" là gì và "hoặc" trong Perl?
- 10. Sự khác nhau giữa 'eq' và '= ~' trong Perl là gì?
- 11. Sự khác nhau giữa 'và #' trong Lisp là gì?
- 12. Sự khác nhau giữa VCS và SCM là gì?
- 13. Sự khác nhau giữa ssize_t và ptrdiff_t là gì?
- 14. Sự khác nhau giữa java.lang.Math và java.lang.StrictMath là gì?
- 15. Sự khác nhau giữa static_cast và reinterpret_cast là gì?
- 16. Sự khác nhau giữa init() và window.init() là gì?
- 17. Sự khác nhau giữa fancyLocalization và preferredLanguage là gì?
- 18. Sự khác nhau giữa CreateObject và Wscript.CreateObject là gì?
- 19. Sự khác nhau giữa CellClick và CellMouseClick là gì?
- 20. Sự khác nhau giữa -0 và 0 là gì?
- 21. Sự khác nhau giữa TCHAR và WCHAR là gì?
- 22. Sự khác nhau giữa `DialogInterface.dismiss()` và `DialogInterface.cancel()` là gì?
- 23. Sự khác nhau giữa fill_parent và wrap_content là gì?
- 24. Sự khác nhau giữa IDbSet.Add và DbEntityEntry.State = EntityState.Added là gì?
- 25. Sự khác nhau giữa SqlCommand.CommandTimeout và SqlConnection.ConnectionTimeout là gì?
- 26. Sự khác nhau giữa NSImage và UIImage là gì?
- 27. Sự khác nhau giữa session.commit() và session.flush() là gì?
- 28. sự khác nhau giữa CONTENT_FILTER_URI và CONTENT_URI là gì?
- 29. Sự khác nhau giữa jQuery.bind() và jQuery.on() là gì?
- 30. Sự khác nhau giữa setWebViewClient và setWebChromeClient là gì?
Ctrl-D được coi là phần cuối của tệp, ví dụ: khi một chương trình đọc từ đầu vào tiêu chuẩn thay vì một tệp khi nhấn Ctrl-D, chương trình sẽ kết thúc đầu vào. Tiêu chuẩn Verilog không có một thói quen như C 'scanf' để đọc đầu vào tiêu chuẩn, vậy tại sao Ctrl-D sẽ có bất kỳ tác dụng trên một mô phỏng Verilog chạy? – Paddu