博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Verilog_11】: 设计一个11分频的分频器,要求输出占空比为50%,不能使用PLL
阅读量:3940 次
发布时间:2019-05-24

本文共 1858 字,大约阅读时间需要 6 分钟。

5.设计一个11分频的分频器,要求输出占空比为50%,不能使用PLL

法一

author : Mr.Maoe-mail : 2458682080@qq.commodule div11x(	input clk,	input reset_n,	output q);reg [3:0] cnt;reg x_p,x_n;always @(posedge clk,negedge reset_n)	if(!reset_n)		cnt <= 0;	else if(cnt < 11-1)		cnt <= cnt + 1'b1;	else		cnt <= 0;always @(posedge clk,negedge reset_n)			if(!reset_n)				x_p <= 0;			else  if(cnt < 11/2)				x_p <= 1;			else				x_p <= 0;always @(negedge clk,negedge reset_n)					if(!reset_n)						x_n <= 0;					else						x_n <= x_p;						assign q = x_p | x_n;													endmodule

法二

author : Mr.Maoe-mail : 2458682080@qq.commodule Fre_div_11(clk , clk_out, rst_n) ;       //11分频input clk,rst_n ;                          //奇数分频需要对上升沿和下降沿分别采样,得到占空比为50%的时钟  output clk_out ;reg [3:0] cnt_p, cnt_n;reg clk_p, clk_n; always@(posedge clk or negedge rst_n)          //上升沿触发begin       if(!rst_n)     begin cnt_p <= 0; clk_p <=0; end       else       begin       if(cnt_p == 10)                                               cnt_p <= 0 ;                          //计数清零       else                cnt_p <= cnt_p + 1 ;       if(cnt_p == 4)                                               clk_p <=~ clk_p ;          //时钟翻转       else if(cnt_n == 9)                                               clk_p <=~ clk_p ;          //时钟翻转       endend always@(negedge clk or negedge rst_n)          //下降沿触发begin       if(!rst_n)     begin cnt_n <= 0; clk_n <= 0 ; end       else       begin       if(cnt_n == 10)                cnt_n <= 0 ;                          //计数清零       else                 cnt_n <= cnt_n + 1 ;       if(cnt_n == 4)                                               clk_n <= ~ clk_n ;           //时钟翻转       else if(cnt_n == 9)                                               clk_n <= ~ clk_n ;           //时钟翻转       endend assign clk_out = clk_n | clk_p ;         //两输出波形相或运算,assign只能是net型 endmodule

转载地址:http://syiwi.baihongyu.com/

你可能感兴趣的文章
3.7.1 - Strings
查看>>
3.7.4 - Indexing and Slicing Strings
查看>>
3.7.5 - Modifying Strings
查看>>
3.7.6 - String Methods
查看>>
3.8 - Using the Print Function
查看>>
3.9.1 - Lists in Python
查看>>
3.9.2 - Lists - Adding and Removing Objects
查看>>
3.9.3 - Sorting Lists
查看>>
3.10 - Maya Commands: ls
查看>>
3.11 - Dictionaries in Python
查看>>
3.12 - Tuples in Python
查看>>
4.4 - For Loops
查看>>
4.2.2 - Logical and/or Operators
查看>>
Lesson 4 Part 2 Softmax Regression
查看>>
文章中运用到的数学公式
查看>>
Projective Dynamics: Fusing Constraint Projections for Fast Simulation
查看>>
从2D恢复出3D的数据
查看>>
glm 中 数据类型 与 原始数据(c++ 数组)之间的转换
查看>>
Derivatives of scalars, vector functions and matrices
查看>>
the jacobian matrix and the gradient matrix
查看>>