最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

全球快看:01-module/分频器/激励写法

来源:博客园


【资料图】

1.module

  • module有出入接口,输出接口
  • module有时钟和复位
// input clock;rest_n;   // n表示低电平复位//outputo_data;
module module_a(  // module是关键字表示声明一个模块  // module module名  // module .. endmodule是一对  // module module_name(模块的输入输出列表);  // 输入只能是wire变量,只有线才能连入module  // 输出可以是wire类型也可以是reg类型,一般是reg变量  // 不写位宽,默认是1bit位宽的  input wire clk,  input wire rest_n,  output reg [7:0] o_data   // 8bit数据);endmodule
module Lut_m(input wire sclk,input wire rst_n,input wire [9:0] i_data,input wire [15:0] i_sin,output reg [15:0] o_cos,output reg o_div_clk,output reg [9:0] div_clk,  // module中包含子module  // 嵌套子模块,就是例化,首先要先将子模块写成单独的模块  // 例化:先写模块的名字 例化的名字  sub_m u_sub_m (    // 如何引入接口    //用点的方式先写模块的接口(接入的接口)    .sclk   (sclk),    .rst_n  (rst_n),    .i_data (i_data),    .i_sin  (i_sin),    .o_cos  (o_cos),    .o_data (o_data)  );  sub_n u_sub_n(    .sclk   (sclk),    .rst_n  (rst_n),    .i_data (i_data),    .i_sin  (i_sin),    .o_data (o_data)  ););endmodule

2.分频器

// 输入50MHz,二分频module div_clk(  input wire sclk,  input wire rst_n,  output reg div_clk_o);  // 分频器,需要一个计数器,二分频,需要记录01状态,1bit  // div_cnt就是一个计数器  // 计数器为0的时候,输出为低,计数器为1的时候,输出为高  reg div_cnt;    //寄存器使用always语句进行赋值的  // 这是一种异步复位的写法  // 在时钟上升沿的时候触发逻辑  // 复位使用作用下实现复位逻辑    // 计数器逻辑  always@(posedge sclk or negedge rst_n)  begin    if(rst_n == 1"b0)    begin      div_cnt <= 1"b0;    end    else begin      div_cnt <= div_cnt + 1"b0;    end  end    // 产生div_sclk_o  always@(posedge sclk or negedge rst_n) begin     if(rst == 1"b0) begin      div_cnt <= 1"b0;       end    else if(div_cnt == 0) begin       div_clk_o <= 1;    end    else       div_clk_o <= 0;  endendmodule
  • div_cnt = 0的时候,给输出赋值1,下一个时钟上升沿就可以输出1
  • div_cnt = 1的时候,给输出赋值0,下一个时钟上升沿就可以输出0在时序电路里,一般系统时钟都是高频的,不同外设对时钟频率的要求不同,所以需要通过分频来获得相应的时钟频率,一般都是将高频的时钟转换为低频的时钟。最简单的分频就是2分频,也就是把时钟频率减半,输出时钟和输入时钟上升沿对齐,波形图是这样的:有遇到需要奇数分频的时候,这时候上升沿和下降沿都需要用到,3分频波形图是这样的:上面两张图都是50%占空比的,有的时候我们只需要用输出时钟的上升沿,不需要考虑下降沿,这样的话我们的输出时钟只需要是单脉冲的就可以了,设计的时候会简单很多,单脉冲的3分频波形图是这样的:
8分频 -- 4周期反转一次4分频 -- 2周期反转一次3分频 -- 1.5周期/3周期5分频 -- 2.5周期/5周期7分频 -- 3.5周期/7周期

后期会补充分频器和计数器的书写方式

关键词: