数字频率计的设计论文(数字频率计的设计)

导读 你们好,最近小活发现有诸多的小伙伴们对于数字频率计的设计论文,数字频率计的设计这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起

你们好,最近小活发现有诸多的小伙伴们对于数字频率计的设计论文,数字频率计的设计这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。

1、 moduletest(clk,rst_n,fre,duan,dig,clk_1ms);

2、 inputclk,rst_n,fre;

3、 output[6:0]duan;

4、 output[3:0]dig;

5、 outputclk_1ms;

6、 reg[12:0]fre_out;

7、 wirefre;

8、 reg[31:0]cnt1;

9、 reg[31:0]cnt2;

10、 regclk_1s;

11、 //声明使用的输入、输出端口和变量。

12、 /*********************0.5hz clock************************************/

13、 always@(posedgeclkornegedgerst_n)begin

14、 if(!rst_n)begin

15、 cnt1=0;

16、 clk_1s=0;

17、 end

18、 elseif(cnt1==32'd50000000)begin

19、 cnt1=0;

20、 clk_1s=~clk_1s;

21、 end

22、 else

23、 cnt1=cnt1+1;

24、 end

25、 //分频得到周期为2s的时钟进行计数。

26、 /**********************2sclockregister************************/

27、 regclk_1s_temp;

28、 always@(posedgeclkornegedgerst_n)begin

29、 if(!rst_n)begin

30、 clk_1s_temp=0;

31、 end

32、 else

33、 clk_1s_temp=clk_1s;

34、 end

35、 /***********************2sclockregister************************/

36、 regclk_1s_temp2;

37、 always@(posedgeclkornegedgerst_n)begin

38、 if(!rst_n)

39、 clk_1s_temp2=0;

40、 else

41、 clk_1s_temp2=clk_1s_temp;

42、 end

43、 //2s时钟寄存器,用于判断上升沿还是下降沿。

44、 /***********************inputsignalregister********************/

45、 regfre_temp;

46、 always@(posedgeclkornegedgerst_n)begin

47、 if(!rst_n)

48、 fre_temp=0;

49、 else

50、 fre_temp=fre;

51、 end

52、 /***********************inputsignalregister*******************/

53、 regfre_temp2;

54、 always@(posedgeclkornegedgerst_n)begin

55、 if(!rst_n)

56、 fre_temp2=0;

57、 else

58、 fre_temp2=fre_temp;

59、 end

60、 //输入信号寄存器,用于判断输入信号的上升沿。

61、 /***********************counter*******************/

62、 always@(posedgeclkornegedgerst_n)begin

63、 if(!rst_n)

64、 cnt2=0;

65、 else if((~ clk _ 1s _ temp)(clk _ 1s _ temp 2))//当时钟_1s有下降沿,cnt2归0

66、 cnt2=0;

67、 Elseif (~ fre _ temp) (fre _ temp2) clk _ 1s)//When the input signal multiplier has a rising edge,

68、 CNT 2=CNT 2 1;clk _ 1s信号的值为1,1的值,cnt2加1。

69、 end

70、 //计数器

71、 /****************passcnt2tofre_out****************/

72、 always@(posedgeclkornegedgerst_n)begin

73、 if(!rst_n)

74、 fre_out=0;

75、 elseif((~clk_1s)(clk_1s_temp))//negativeedgepassvalue

76、 fre_out=cnt2;

77、 end

78、 //将cnt2的值传递给fre_out。

79、 /****************1msclock****************/

80、 reg[31:0]cnt;

81、 regclk_1ms;

82、 always@(posedgeclkornegedgerst_n)begin

83、 if(!rst_n)

84、 cnt=0;

85、 elseif(cnt==17'd100000)begin//250hz

86、 cnt=0;

87、 clk_1ms=~clk_1ms;

88、 end

89、 elsecnt=cnt+1;

90、 end

91、 //1ms时钟用于数码管显示模块。

92、 /****************Digitaltubedisplaysection****************/

93、 reg[3:0]dig;

94、 reg[6:0]duan;

95、 wire[3:0]thou,hun,ten,one;

96、 assignthou=(fre_out/1000)%10;

97、 assignhun=(fre_out/100)%10;

98、 assignten=(fre_out/10)%10;

99、 assignone=(fre_out)%10;

100、 always@(posedgeclk_1msornegedgerst_n)begin

101、 if(!rst_n)begin

102、 dig=4'b1110;

103、 end

104、 else

105、 dig={dig[0],dig[3:1]};

106、 end

107、 always@(posedgeclk_1ms)begin

108、 if(!rst_n)begin

109、 duan=7'b1111111;

110、 end

111、 elsebegin

112、 case(dig)

113、 4'b0111:begin case(hun)

114、 4'd0:duan=7'b1000000;

115、 4'd1:duan=7'b1111001;

116、 4'd2:duan=7'b0100100;

117、 4'd3:duan=7'b0110000;

118、 4'd4:duan=7'b0011001;

119、 4'd5:duan=7'b0010010;

120、 4'd6:duan=7'b0000010;

121、 4'd7:duan=7'b1111000;

122、 4'd8:duan=7'b0000000;

123、 4'd9:duan=7'b0010000;

124、 default:

125、 endcase

126、 end

127、 4'b1011:begin

128、 case(ten)

129、 4'd0:duan=7'b1000000;

130、 4'd1:duan=7'b1111001;

131、 4'd2:duan=7'b0100100;

132、 4'd3:duan=7'b0110000;

133、 4'd4:duan=7'b0011001;

134、 4'd5:duan=7'b0010010;

135、 4'd6:duan=7'b0000010;

136、 4'd7:duan=7'b1111000;

137、 4'd8:duan=7'b0000000;

138、 4'd9:duan=7'b0010000;

139、 default:

140、 endcase

141、 end

142、 4'b1101:begin

143、 case(one)

144、 4'd0:duan=7'b1000000;

145、 4'd1:duan=7'b1111001;

146、 4'd2:duan=7'b0100100;

147、 4'd3:duan=7'b0110000;

148、 4'd4:duan=7'b0011001;

149、 4'd5:duan=7'b0010010;

150、 4'd6:duan=7'b0000010;

151、 4'd7:duan=7'b1111000;

152、 4'd8:duan=7'b0000000;

153、 4'd9:duan=7'b0010000;

154、 default:

155、 endcase

156、 end

157、 4'b1110:begin

158、 case(thou)

159、 4'd0:duan=7'b1000000;

160、 4'd1:duan=7'b1111001;

161、 4'd2:duan=7'b0100100;

162、 4'd3:duan=7'b0110000;

163、 4'd4:duan=7'b0011001;

164、 4'd5:duan=7'b0010010;

165、 4'd6:duan=7'b0000010;

166、 4'd7:duan=7'b1111000;

167、 4'd8:duan=7'b0000000;

168、 4'd9:duan=7'b0010000;

169、 default:

170、 endcase

171、 end

172、 default:duan=7'b0000000;

173、 endcase

174、 end

175、 end

176、 endmodule

以上就是数字频率计的设计这篇文章的一些介绍,希望对大家有所帮助。

标签:

免责声明:本文由用户上传,如有侵权请联系删除!