⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 divider_cd.v

📁 a verilog programmed divide unit
💻 V
字号:
module cale_de_date (A,B,ck,reset,zero,msb_p,ld_A,shl_A,ld_B,ld_C,dec_C,
                     ld_P,shl_P,clr_P,reg_A,P);

input ck;     //semnal de clock
input reset;  //semnalul de reset

input [7:0] A,B;
output [7:0] reg_A;
output [8:0] P;

output zero;   //semnal de semnalizare de ZERO a valorii numaratorului
output msb_p;  //semnal pentru msb_p

// semnale de intrare in cale de date si iesire din calea de control
input ld_A;  // semnal de incarcare reg_A
input shl_A; //semnal de shiftare stinga a reg_A
input ld_B;  //semnal de incarcare reg_B
input ld_C;  //semnal de incarcare a reg_C
input dec_C; // semnal de decrementare a reg_C
input ld_P;  //semnal de incarcare a valorii lui P
input shl_P; //semnal de shiftare stinga a lui P
input clr_P; // semnal de resetare a registrului P
		
reg[7:0]  reg_A ;  //declararea reg_A
reg[7:0]  reg_B ;  //declararea reg_B
reg[3:0]   reg_C ;  //declararea reg_C
reg[8:0]  P;      //declararea registrului P

assign msb_p = P[8];

// se calculeaza valoarea de zero adica iesirea din numarator prin poarta SAU NEGAT
assign zero=~|reg_C[3:0];

always @(posedge ck or negedge reset)
   begin
     if(!reset)
          reg_A <= 0;
       else
         if(ld_A)
	   reg_A <=A;
         else
           if(shl_A)
	     reg_A <={reg_A[6:0],~P[8]};
    end 

always @(posedge ck or negedge reset)
  begin   
	if(!reset)
      reg_B <= 0;
     else
          if(ld_B) reg_B <= B;
  end

always @(posedge ck or negedge reset)
    begin
     if(!reset)
       reg_C <= 0;
     else
       if(ld_C)
         reg_C<= 4'b1000;
       else 
         if(dec_C)
	   reg_C <=reg_C - 1;
        end 

//registrul reg_P 
always @(posedge ck or negedge reset) 
    if(!reset)
       P <= 0;
     else 
       begin
        if (clr_P) 
         P <= 0; 
       if (ld_P)
        if (P[8])
         P <= P + reg_B;
          else 
          P <= P - reg_B;
           if(shl_P)
            P <={P[7:0],reg_A[7]};
        end
endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -