Vấn đề mã hóa flipflop trong VHDL

A

AMCC

Guest
Dear All, Tôi đang sử dụng đoạn mã sau để tạo ra một FF với thiết lập đồng bộ và cho phép: Run_Condition: QUY TRÌNH (aq_clk, en_aq, bắt đầu, chạy) BEGIN (aq_clk'event và aq_clk = '1 ') sau đó nếu (en_aq = '0 ') sau đó chạy
 
tạm thời bắt đầu quá trình (aq_clk, en_aq, bắt đầu) biến temp: std_logic_vector (1 downto 0);: = en_aq & bắt đầu, nếu (aq_clk = '1 'và aq_clk'event) sau đó trường hợp (temp) là khi "00" | " 01 "=> chạy chạy null; kết thúc vụ án, kết thúc nếu kết thúc quá trình;
 
Hoặc thiết lập một giá trị ban đầu: tín hiệu chạy: std_logic: = '0 ';
 
chính xác như đã nói ở trên, bạn có thể thiết lập một giá trị ban đầu cho "chạy" trước khi báo cáo, hoặc làm cho một trường hợp cho điều kiện thiếu không được mã của bạn ... hoặc bạn có thể chỉ cần thêm một điều kiện "khác" trước khi kết thúc " nếu "để trang trải các điều kiện mất tích (giống như thêm trường hợp):)
 
Hi tất cả, Tuy nhiên, trong tổng hợp này giá trị ban đầu không đưa vào tài khoản. Làm thế nào để giải quyết vấn đề này khi khởi tạo thiết bị là cần thiết.
 
Kính thưa tất cả, Cảm ơn bạn cho ý kiến của bạn, nhưng tôi nghĩ rằng vấn đề không phải là giá trị ban đầu. 'Chạy' SẼ bắt đầu một cách này hay cách khác (bằng cách mặc định khởi tạo hoặc bởi thực tế rằng en_aq là "0" "0 ban đầu (và điều này là đúng cách khởi tạo) Tôi tự hỏi nếu có bất kỳ sự khác biệt giữa việc sử dụng: nếu elsif endif HOẶC nếu người nào khác nếu kết thúc nếu nó có thể tổng hợp có thể có quan điểm khác nhau của mã Thnak bạn rất nhiều vì sự chú ý của bạn.? AMCC
 
trước hết là không có endif nó chỉ kết thúc nếu trong VHDL nếu bạn nói elsif ... sau đó nó chỉ là việc tiếp tục tuyên bố trước khi người cuối cùng khác, bạn chỉ có thể có nếu và elsif .. hoặc nếu khác ... phụ thuộc trên hành vi thiết kế của bạn .... nhưng nếu nó khác nếu ... sau đó có lồng nhau báo cáo nếu người nào khác ... và đó là khác nhau trong tổng hợp của khóa học, tôi đoán vấn đề của bạn nằm trong báo cáo nếu người nào khác ... cố gắng viết đúng theo hành vi của ff bạn muốn có ... do đó, lời khuyên của tôi thêm một khác cuối cùng với các điều kiện thả ra từ hai điều kiện đầu tiên chạy và bắt đầu:)
 
Salma thân mến, Dĩ nhiên "nếu" ... "văn bản" sai lầm :). Một câu hỏi liên quan như nêu lên trong đầu tôi: sự khác biệt là trong một tổng hợp khi mã hóa một Flip-Flop với đồng bộ kích hoạt và thiết lập lại của hai mô tả dưới đây? Description1: nếu (clk'event và CLK = '1 ') sau đó nếu (reset = '1') sau đó ra
 
Tất nhiên việc thực hiện chính xác của mã này phụ thuộc vào công cụ tổng hợp được sử dụng và kiến trúc các mục tiêu của thiết bị .... nhưng nói chung: nếu (không khác) suy luận một chốt (tránh điều này) nếu người nào khác hàm ý một MUX nếu người nào khác nếu hoặc nếu elsif ... bao hàm sự logic ưu tiên mã hóa ... với mức độ khác nhau theo các báo cáo bằng văn bản ... chỉ cần tưởng tượng như nếu bạn có ở đây một MUX với một đầu vào đơn giản tại một pin (mã sau nếu) và một bó toàn bộ logic khác như là đầu vào khác (mã sau khi người nào khác nếu elsif ... vv) đó là làm cho cấp độ khác với muxes ...: D
 
Trong chương trình này nếu chế độ là 'chạy' (cổng đầu ra) sau đó u không đưa vào danh sách nhạy cảm quá trình () hoặc nếu chạy có thể thay đổi sau đó bạn sử dụng tuyên bố chuyển nhượng biến assiging giá trị. như chạy: = en_aq;
 
kẻ nó chỉ hoạt động trong Verilog nếu cond 1 sau đó tuyên bố 1 nếu cond 2 thì statement2 trong sẽ xây dựng bộ mã hóa ưu tiên trong VHDL cho rằng có chút khác nhau những gì sẽ xảy ra nếu cond1 và cond cả sự thật, điều này đã được mô tả hoặc cond1 và cond2 sai. Kính trọng,
 
Dear All, Tôi đang sử dụng đoạn mã sau để tạo ra một FF với thiết lập đồng bộ và cho phép: Run_Condition: QUY TRÌNH (aq_clk, en_aq, bắt đầu, chạy) BEGIN (aq_clk'event và aq_clk = '1 ') sau đó nếu (en_aq = '0 ') sau đó chạy
 
tạm thời bắt đầu quá trình (aq_clk, en_aq, bắt đầu) biến temp: std_logic_vector (1 downto 0);: = en_aq & bắt đầu, nếu (aq_clk = '1 'và aq_clk'event) sau đó trường hợp (temp) là khi "00" | " 01 "=> chạy chạy null; kết thúc vụ án, kết thúc nếu kết thúc quá trình;
 
Hoặc thiết lập một giá trị ban đầu: tín hiệu chạy: std_logic: = '0 ';
 
chính xác như đã nói ở trên, bạn có thể thiết lập một giá trị ban đầu cho "chạy" trước khi báo cáo, hoặc làm cho một trường hợp cho điều kiện thiếu không được mã của bạn ... hoặc bạn có thể chỉ cần thêm một điều kiện "khác" trước khi kết thúc " nếu "để trang trải các điều kiện mất tích (giống như thêm trường hợp):)
 
Hi tất cả, Tuy nhiên, trong tổng hợp này giá trị ban đầu không đưa vào tài khoản. Làm thế nào để giải quyết vấn đề này khi khởi tạo thiết bị là cần thiết.
 
Kính thưa tất cả, Cảm ơn bạn cho ý kiến của bạn, nhưng tôi nghĩ rằng vấn đề không phải là giá trị ban đầu. 'Chạy' SẼ bắt đầu một cách này hay cách khác (bằng cách mặc định khởi tạo hoặc bởi thực tế rằng en_aq là "0" "0 ban đầu (và điều này là đúng cách khởi tạo) Tôi tự hỏi nếu có bất kỳ sự khác biệt giữa việc sử dụng: nếu elsif endif HOẶC nếu người nào khác nếu kết thúc nếu nó có thể tổng hợp có thể có quan điểm khác nhau của mã Thnak bạn rất nhiều vì sự chú ý của bạn.? AMCC
 
trước hết là không có endif nó chỉ kết thúc nếu trong VHDL nếu bạn nói elsif ... sau đó nó chỉ là việc tiếp tục tuyên bố trước khi người cuối cùng khác, bạn chỉ có thể có nếu và elsif .. hoặc nếu khác ... phụ thuộc trên hành vi thiết kế của bạn .... nhưng nếu nó khác nếu ... sau đó có lồng nhau báo cáo nếu người nào khác ... và đó là khác nhau trong tổng hợp của khóa học, tôi đoán vấn đề của bạn nằm trong báo cáo nếu người nào khác ... cố gắng viết đúng theo hành vi của ff bạn muốn có ... do đó, lời khuyên của tôi thêm một khác cuối cùng với các điều kiện thả ra từ hai điều kiện đầu tiên chạy và bắt đầu:)
 
Salma thân mến, Dĩ nhiên "nếu" ... "văn bản" sai lầm :). Một câu hỏi liên quan như nêu lên trong đầu tôi: sự khác biệt là trong một tổng hợp khi mã hóa một Flip-Flop với đồng bộ kích hoạt và thiết lập lại của hai mô tả dưới đây? Description1: nếu (clk'event và CLK = '1 ') sau đó nếu (reset = '1') sau đó ra
 

Welcome to EDABoard.com

Sponsor

Back
Top