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

📄 verilog1.v

📁 是一些很好的FPGA设计实例
💻 V
字号:
// 时钟分配计数器
module clk_up5(clk_en,clk,clr,qout);
input clk_en, clk,clr;
output [4:0] qout;
reg [4:0]qout;
 
always@(posedge clk)
    begin
    if (!clr) qout <= 0;
    else if (!clk_en)
              qout <= 0;
         else 
              qout <=qout +1;
    end
endmodule


//SCK时钟逻辑的生成 
module sck_logic(clkdiv,cpha,cpol,clk0_mask,clk1_mask,sck_intre,sck_int_fe,
                 scl_re,sck_fe,ss_in_int,sck,sck_1,reset,clk);
input[1:0]clkdiv;//sck时钟的时钟因子
input cpha;  //sck时钟的相位
input cpol;  //sck时钟的极性
input clk0_mask;//cpha=0时的sck时钟表征
input clk1_mask;//cpha=1时的sck时钟表征
input reset;
input clk;
output sck_int_re;//内部SCK的上升沿
output sck_int_fe;//内部SCK的下降沿
output sck_re;//外部SCK的下降沿
input ss_in_int;//另一个主机在总线上
inout sck;
inout sck_1;//通过分配SCK时钟得到的内部时钟
  
wire [4:0]clk_cnt;//时钟分配输出
wire clk_cnt_en;//时钟分配记数使能
wire clk_cnt_rst;//记数复位
reg sck_int_d1;
reg sck_int;//cpha=1时的sck 
reg sck_0;//cpha=0时的sck 
reg sck_out;//用来输出sck 
reg sck_d1;
reg [1:0] temp;
wire sck_int_re,sck_int_fe,sck_re, sck_fe,clk_en,clr,clk,sck_1;
wire [4:0] qout;

clk_up5 m0(.clk_en(clk_cnt_en),.clr(clk_en_rst),.clk(clk),.qout(clk_cnt));

assign clk_cnt_en=1;


//生成内部时钟
always@(posedge clk or negedge reset)
   begin
      if(!reset)
         sck_int=0;
      else
         case(clkdiv)
             2'b00:sck_int = clk_cnt[1];//clk_cnt时钟分配输出//sck_int:cpha=1时的sck 
             2'b01:sck_int = clk_cnt[2];//sck_int:cpha=1时的sck
             2'b10:sck_int = clk_cnt[3];
             2'b11:sck_int = clk_cnt[4];
             default: sck_int =0;
         endcase
end


⌨️ 快捷键说明

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