Các "luật chung" là
bất cứ điều gì mà quá trình của bạn cần phải biết về thay đổi của cần phải có trong danh mục nhạy cảm.
Đối với một thanh ghi synthesisable điển hình với một thiết lập lại đồng bộ:
process (clk) is
begin
if rising_edge(clk) then
if reset = '1' then
-- do reset things
else
-- read some signals, assign some outputs
end if;
end if;
end process;
Chỉ có đồng hồ cần phải được trong danh sách, như mọi thứ khác chỉ nhìn khi đồng hồ thay đổi (do tuyên bố if rising_edge(clk)
.
Nếu bạn cần không đồng bộ reset:
process (clk, reset) is
begin
if reset = '1' then
-- do reset things
elsif rising_edge(clk) then
-- read some signals, assign some outputs
end if;
end process;
sau đó tín hiệu reset
cũng phải nằm trong danh sách nhạy cảm, như thiết kế của bạn cần phải kiểm tra giá trị của nó mỗi khi nó thay đổi, không phụ thuộc vào những gì mà đồng hồ đang làm.
cho logic tổ hợp, tôi tránh sử dụng các quy trình hoàn toàn vì trong những vấn đề giữ danh sách nhạy cảm với nhật, và tiềm năng cho mô phỏng sau đó hành xử khác nhau để mã tổng hợp. Điều này đã được giảm bớt bởi các từ khóa all
trong VHDL-2008, nhưng tôi vẫn chưa thấy mình muốn viết logic tổ hợp phức tạp dài như vậy mà một quá trình sẽ giúp đỡ.
Nguồn
2012-01-25 15:14:55
Không chính xác! _ "danh sách độ nhạy không ảnh hưởng đến hành vi của thiết kế của bạn khi nó được tổng hợp." _ Tùy thuộc vào công cụ tổng hợp, danh sách độ nhạy có thể bị bỏ qua hoặc chốt có thể được suy ra. – Philippe
Ok, "không có ảnh hưởng trong nhiều công cụ tổng hợp", trong đó 'nhiều' là những cái tôi đã sử dụng. –