Về FSM trong VHDL

E

eda_guy

Guest
Chào,

Tôi có một FSM trong thiết kế của tôi với 2 quá trình, một trong những ví dụ cho các trình tự và kế tiếp combinational này làm thế nào để initilize tất cả các tín hiệu địa phương trong tiểu bang đặt lại??Tôi đang nói đến cách i am doing.Đúng tôi, nếu nó là sai / khuyên tôi, nếu bất kỳ cách nào tốt hơn để làm điều đó.

--------------------------------------------------
architeture beh của FSM là
tín hiệu <sig1>: <sig_type>;
tín hiệu <sig2>: <sig_type>;
tín hiệu <sig3>: <sig_type>;
.
.
.
tín hiệu <sig10>: <sig_type>;proc1: quá trình (CLK, rẽ)
bắt đầu
nếu rst = '1 'rồi
p_state <= state0;
elsif clk'event và CLK = '1 'rồi
p_state <= n_state;
nếu kết thúc;
kết thúc quá trình;

proc2: quá trình (p_state, rẽ, <input cổng signals>)
Biến <local signals1>;
Biến <local signals2>;
.
.
.
.
Biến <local signals10>;
bắt đầu
nếu rst = '1 'rồi
initilize tất cả các tín hiệu địa phương 1-10 với val mặc định;
initilize tất cả 1 biến đến 10 với val mặc định;
n_state <= state0;
khác
trường hợp là p_state
khi state0 =>
--- Một số bài tập;
--- Một số assignmets đến đầu ra tín hiệu;
khi state1 =>
--- Một số bài tập;
.
.
.
khi những người khác =>
n_state <= state0;
endcase;
nếu kết thúc;
kết thúc quá trình;
--------------------------------------------------
thankx và Rgds,
eda_guy

 
Trong quá trình đầu tiên bạn khởi tạo các p_state để state0.Trong quá trình thứ hai bạn không cần tín hiệu rẽ.
Các tín hiệu và các biến sẽ được khởi tạo trong state0 đó là tiểu bang mà các FSM đi khi cài lại diễn ra.Vì vậy, các mã cho quá trình thứ hai là:

proc2: quá trình (p_state, <input cổng signals>)
Biến <local signals1>;
Biến <local signals2>;
.
.
.
.
Biến <local signals10>;
bắt đầu

trường hợp là p_state

khi state0 =>

initilize tất cả các tín hiệu địa phương 1-10 với val mặc định;
initilize tất cả 1 biến đến 10 với val mặc định;

khi state1 =>
--- Một số bài tập;
.
.
.
khi những người khác =>
n_state <= state0;

endcase;
nếu kết thúc;
kết thúc quá trình;

Hy vọng điều này đã giúp.

 
eda_guy đã viết:

Chào,Tôi có một FSM trong thiết kế của tôi với 2 quá trình, một trong những ví dụ cho các trình tự và kế tiếp combinational này làm thế nào để initilize tất cả các tín hiệu địa phương trong tiểu bang đặt lại??

eda_guy
 
Quá trình thứ hai không cần chứa bất kỳ thiết lập lại, u có thể thêm logic ur trực tiếp khi ur tại state0 sử dụng statments trường hợp, và tất cả các tín hiệu mong muốn u địa phương để initilaize, nhìn vào chúng trong trạng thái hiện tại.

Có ba kiểu khác nhau của mã hóa trong statemachines trong VHDL.
rõ ràng là một trong những quy định trên đây là một trong effiecient.

kính trọng

 

Welcome to EDABoard.com

Sponsor

Back
Top