当前位置:   article > 正文

牛客网Verilog刷题——VL40

牛客网Verilog刷题——VL40

牛客网Verilog刷题——VL40

题目

  设计一个同时输出7分频的时钟分频器,占空比要求为50%。注意rst为低电平复位。
  信号示意图如下:
在这里插入图片描述

  波形示意图如下。
在这里插入图片描述

  输入输出描述:

信号类型输入/输出位宽描述
clk_inwireIntput1系统时钟信号
rstwireIntput1异步复位信号,低电平有效
clk_out7wireOutput1分频时钟

答案

`timescale 1ns/1ns

module odo_div_or
   (
    input    wire  rst ,
    input    wire  clk_in,
    output   wire  clk_out7
    );

//*************code***********//
reg 	[2:0]	cnt1;
reg 	[2:0]	cnt2;
reg				clk1;
reg				clk2;

always @(posedge clk_in or negedge rst)
	if(!rst)
		cnt1 <= 'd0;
	else if(cnt1 == 'd6)
		cnt1 <= 'd0;
	else
		cnt1 <= cnt1 + 1'd1;

always @(posedge clk_in or negedge rst)
	if(!rst)
		clk1 <= 1'b0;
	else if(cnt1 == 'd3 || cnt1 == 'd6)
		clk1 <= ~clk1;
	else
		clk1 <= clk1;
	
always @(negedge clk_in or negedge rst)
	if(!rst)
		cnt2 <= 'd0;
	else if(cnt2 == 'd6)
		cnt2 <= 'd0;
	else
		cnt2 <= cnt2 + 1'd1;

always @(negedge clk_in or negedge rst)
	if(!rst)
		clk2 <= 1'b0;
	else if(cnt2 == 'd3 || cnt2 == 'd6)
		clk2 <= ~clk2;
	else
		clk2 <= clk2;

assign clk_out7 = clk1 | clk2;
//*************code***********//
endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/494141
推荐阅读
相关标签
  

闽ICP备14008679号