?? divider_cc.v
字號:
//definirea starilor automatului
`define S0 9'b000000000 //maparea starii S0
`define S1 9'b101100010 //maparea starii S1
`define S2 9'b000010100 //maparea starii S2
`define S3 9'b000001000 //maparea starii S3
`define S4 9'b010000000 //maparea starii S4
`define S5 9'b000001001 //maparea starii S5
`define S6 9'b000000001 //maparea starii S6
module calea_de_control( start,ck,reset,zero,msb_p, ld_A,shl_A,ld_B,
ld_C,dec_C,ld_P,shl_P,clr_P,ready);
input start;
input ck;
input reset;
input zero; //semnal de semnalizare de ZERO a valorii numaratorului
input msb_p; //semnal pentru msb_p
output ld_A; // semnal de incarcare reg_A
output shl_A; //semnal de shiftare stinga a reg_A
output ld_B; //semnal de incarcare reg_B
output ld_C; //semnal de incarcare a reg_C
output dec_C; // semnal de decrementare a reg_C
output ld_P; //semnal de incarcare a valorii lui P
output shl_P; //semnal de shiftare stinga a lui P
output clr_P; // semnal de resetare a registrului P
// semnal de iesire
output ready;
reg[9:0] stare;
always @(posedge ck or negedge reset)
if (!reset)
stare<=`S0;
else
case (stare)
`S0: if(start)
stare <=`S1;
else
stare <=`S0;
`S1: stare <= `S2;
`S2: stare <= `S3;
`S3: stare <= `S4;
`S4: if (zero)
if (msb_p)
stare <= `S5;
else
stare <= `S6;
else
stare <= `S2;
default: stare <= `S0;
endcase
assign {ld_A,shl_A,ld_B,ld_C,dec_C,ld_P,shl_P,clr_P,ready} = stare;
endmodule
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -