Trì hoãn trước khi chuyển nhượng.

M

munchies

Guest
Tôi đang sử dụng VHDL và tôi muốn giới thiệu một sự chậm trễ trước khi giao hai tín hiệu là như nhau. Suy nghĩ của tôi là một chuyển đổi, chuyển từ tất cả các số không hoặc null vào dây Tôi muốn để có những tín hiệu từ sau khi x số lượng của clk_cycles. Đây có phải là có thể? Vấn đề của tôi là thiết kế của tôi là xuất dữ liệu rác trước khi tất cả các dữ liệu chính xác truyền qua nó đầy đủ, tôi muốn giao cho đầu ra để không hoặc vô giá trị cho đến khi sự chậm trễ tuyên truyền là hoàn tất. Đây có phải là có thể? Cảm ơn bạn cho bất kỳ sự trợ giúp hoặc thảo luận.
 
mạch của bạn có một phần tuần tự không? bởi vì nó, bạn có thể sử dụng nó để xác định khi giao để sản xuất. những gì bạn đang nói là không hữu ích, như xa như tôi đã hiểu. bạn đang nói ví dụ bạn có một sợi dây và bạn muốn nó không có giá trị trong một thời gian (null), và hơn bạn sẽ chỉ định một giá trị cho nó khi bạn muốn. giá trị null là không thể trong HDL. bởi vì mỗi dây và đăng ký có một giá trị ngẫu nhiên ở thiết lập lại, vì chúng là thực tế bistable thiết bị trạng thái rắn. những gì bạn có thể làm là ví dụ, có một chu kỳ truy cập. và nói rằng mạch của bạn kết thúc tính toán của nó sau khi 150 chu kỳ đồng hồ. và bạn có thể có một đăng ký đầu ra là tất cả các số tối đa 150 tính chu kỳ. và bạn có thể thiết lập đầu ra sau khi số 150. chu kỳ. và bạn có thể cũng đã có một tín hiệu một chút, nói "thực hiện". và bạn thiết lập tín hiệu này thực hiện olnly sau khi sự phân công để đăng ký kết quả là kết thúc. theo cách này bạn có thể nói với các mô-đun tiếp theo này là một phần của sytem đã tính toán giá trị sản lượng của nó, và giá trị là sẵn sàng để được lấy từ đầu ra của nó đăng ký. đây là cách phổ biến để làm những gì bạn yêu cầu. hy vọng điều này sẽ giúp.
 
Trong I] mô phỏng [/I], bạn có thể trì hoãn một nhiệm vụ tín hiệu bằng cách sử dụng [FONT = Courier New] sau [/FONT], nhưng có lẽ không phải những gì bạn muốn: [url = http://www.gmvhdl.com / delay.htm] VHDL Tutorial - Mô hình trễ [/url] Bạn có thể cần phải tạo ra một tín hiệu cho biết khi rác đã đỏ mặt thông qua các module của bạn, và sử dụng đó để thay đổi sản lượng hoặc tắt. Tôi đề nghị bạn thêm một cái gì đó như thế này để kết thúc mô-đun của bạn: [Mã] finalOutput '0');[/ Mã]
 
Được rồi cảm ơn bạn cho điều đó. Tôi biết những gì tôi muốn dùng nó, vì vậy tôi muốn sử dụng một cái gì đó như [Mã] IF (Fire'event VÀ cháy = '1 ') THEN ...... ComputationReady = '1 '; [/CODE] Làm thế nào để sau đó thiết lập sự chậm trễ mà tôi muốn? Trong trường hợp này là 4 chu kỳ. Tôi giả định sử dụng bất kỳ thời gian là vô dụng bên ngoài của mô phỏng. Vì vậy, tôi cần một cái gì đó như:
Code:
 chờ đợi 8 * clk'event
hoặc một cái gì đó như thế?
 
không sử dụng ý tưởng đầu tiên - bạn đang tạo ra một chiếc đồng hồ sẽ làm cho bạn tất cả các loại của các vấn đề thời gian. Chỉ tốt nhất để thiết lập một truy cập và chờ đợi cho đến khi nó đạt đến một giá trị nhất định.
 
Không kích hoạt trên một cạnh tăng "lửa", theo cách đó, bạn sẽ sử dụng "lửa" như một chiếc đồng hồ mới, thay vì một tín hiệu điều khiển. Thay vào đó, hãy kiểm tra các giá trị cũ và so sánh với giá trị mới. Sau đó bắt đầu đếm 4 chu kỳ đồng hồ. Đếm 4 chu kỳ đồng hồ có thể được thực hiện bằng cách thay đổi các giá trị trong sổ đăng ký thay đổi, hoặc bằng cách tạo ra một máy nhà nước với truy cập một. Chúng ta hãy làm sự chuyển đổi đăng ký ở đây: tờ khai Giả sử như thế này:
Code:
 tín hiệu hỏa hoạn, bị sa thải, hoạt động: std_logic; tín hiệu đếm: std_logic_vector (4 downto 0); [/ Mã] bạn một cái gì đó tương tự như điều này trong quá trình đồng bộ của bạn: [Mã nếu rising_edge (CLK) sau đó nếu bị sa thải = "0" và lửa = '1 'sau đó bắt đầu đếm hoạt động
 
Trong một thiết kế pipelined, bạn thường sẽ muốn có một DAV (dữ liệu có sẵn) đường ống dẫn, trì hoãn một tín hiệu bắt tay cùng với các dữ liệu. Nó không chỉ là trì hoãn một tín hiệu dữ liệu đã sẵn sàng nhưng cho phép nhiều giá trị mới để đi du lịch đường dẫn dữ liệu cùng một lúc. Nếu tản dữ liệu được đăng ký dữ liệu theo tín hiệu DAV, bạn không cần đến mặt nạ dữ liệu đầu ra không hợp lệ. Nếu các đường dẫn dữ liệu đang hoạt động tuần tự hơn là pipelined, ví dụ như một đơn vị chia nối tiếp, một DAV truy cập đơn giản sẽ là đủ.
 

Welcome to EDABoard.com

Sponsor

Back
Top