Trong VHDL, sự khác biệt giữa những lần giảm giá của trò chơi điện tử


7

Có sự khác biệt giữa

 (x downto y) and (y to x)?

Chúng ta nên sử dụng ở đâu (x dowo y)? Câu hỏi tương tự dành cho (y đến x).

Ký hiệu: x và y là số nguyên


Tôi thực sự muốn bạn không thú vị khi rời đi, nhưng hãy xem bài đăng này để xem bước cuối cùng để xóa tài khoản. Bạn cần gửi email hỗ trợ, không gắn cờ người điều hành.
Kortuk

Câu trả lời:


9

Đây là nơi bạn có thể nói rằng VHDL được phát minh bởi một ủy ban chính phủ. Nếu VHDL được thiết kế để nhất quán thì những gì bạn gọi là "đến" sẽ được gọi là "tối đa" - như ngược lại với "dowo". Trong câu trả lời này tôi sẽ đề cập đến "tối đa". Chỉ cần hiểu rằng tôi đang sử dụng thuật ngữ này cho rõ ràng-- nó vẫn không phải là một từ khóa VHDL chính thức.

Các vectơ hoặc mảng, có thể có một phạm vi đang giảm dần hoặc tăng dần. Ví dụ:

signal foo :std_logic_vector (7 downto 0);
signal bar :std_logic_vector (0 to 7);

Đây hoàn toàn là một quy ước đánh số và ít liên quan đến hiệu quả logic kết quả. Hầu hết, một chính xác để sử dụng phụ thuộc vào những gì có ý nghĩa nhất đối với người viết mã.

Điều đó đang được nói, không bao giờ sử dụng "tối đa" trừ khi bạn phải. Ý kiến ​​cá nhân của tôi là gì, nhưng nó dựa trên 20 năm viết VHDL chuyên nghiệp và 30 năm viết phần mềm:

Trộn dowo và tối đa trong cùng một mã luôn có vấn đề. Nó có thể được thực hiện, nhưng nó đòi hỏi lập kế hoạch và ký hiệu cẩn thận để có được quyền. Ngay cả sau đó, mã kết thúc là khó đọc và sửa đổi sau này. Rất dễ nhầm lẫn giữa tín hiệu nào là dowo và tín hiệu nào là tối đa.

Hầu hết các bus được đánh số bằng cách sử dụng "N dowo 0", trong đó bit 0 là ít quan trọng nhất và N là đáng kể nhất. Bởi vì điều này, dowo là quan trọng nhất trong hai. Và vì chúng tôi không muốn trộn lẫn dowo và tối đa, nên tối đa được đưa ra khởi động. Trong mọi trường hợp tôi đã sử dụng tối đa, tôi đã rất hối hận và cuối cùng thường viết lại mã.

Hiểu rằng việc sử dụng / lạm dụng tối đa chủ yếu trở thành một vấn đề trong các "chương trình" lớn. Nó làm cho việc chia sẻ các mô-đun (còn gọi là tái sử dụng mã) trở nên khó khăn và khó duy trì và gỡ lỗi mã. Nếu bạn chỉ viết một hoặc hai trang VHDL thì có thể không vấn đề gì. Nhưng nếu bạn đang viết các bản đồ họa với hơn 30.000 dòng VHDL thì đây sẽ là một vấn đề lớn.

Chỉ có một vài nhược điểm khi chỉ sử dụng dowo. Nhưng nhược điểm là rất nhỏ so với các vấn đề tôi gặp phải khi trộn lẫn dowo và tối đa.

Như một lưu ý phụ: Người quyết định làm cho các thanh PowerPC bị đảo ngược (với bit 0 là bit có ý nghĩa nhất) sẽ bị hắc và bị biến đổi. Hoặc ít nhất bị buộc phải xem Richard Simmons 24x7 trong khi bị biệt giam. Chỉ cần nói.


+1 để sử dụng dowo và tránh "tối đa" bằng mọi giá. Nó sẽ thực sự quay trở lại để cắn bạn nếu không. Ngoài ra, bit 0 là MSB cũng khiến tôi phát điên vì nó hoàn toàn loại bỏ ý tưởng về giá trị địa điểm.
Josh

Đôi khi, bạn phải sử dụng biểu mẫu 'đến', ví dụ như khi tạo các thiết bị ngoại vi để giao tiếp với bus loại PowerPC (như trên Microblaze end-endian của Xilinx). Mặc dù vậy, tôi biến chúng trở lại thành 'xuống dốc nhanh nhất có thể
Martin Thompson

Vì vậy, điểm mấu chốt không phải là sử dụng dowo cho các kiến ​​trúc trong đó chỉ số bit cao = MSB và "tối đa" trong đó chỉ số bit cao = LSB?
Mystère

0

Chúng tương đương nhau, và đó chỉ là sở thích cá nhân mà bạn sử dụng. downtothường được sử dụng cho các bus địa chỉ hoặc dữ liệu, trong đó việc đọc từ trái sang phải bạn bắt đầu với bit thứ tự cao nhất.


2
Không, chúng không tương đương. Không có gì. Xem câu trả lời của David cho lý do tại sao.
akohlsmith
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.