博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(原創) 哪一個計數器才會出現9呢? (SOC) (Verilog)
阅读量:5791 次
发布时间:2019-06-18

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

Abstract

一個很簡單的題目,考驗你的觀念清不清楚...

Introduction

廢話不多說,直接看code吧,哪個計數器才會數到9呢?

counter9_v1.v / Verilog

1 
/*
 
2 
(C) OOMusou 2008
http://oomusou.cnblogs.com
3 
4 
Filename    : counter9_v1.v
5 
Compiler    : Quartus II 7.2 SP3
6 
Description : count to 9?
7 
Release     : 07/18/2008 1.0
8 
*/
9 
module counter9_v1 (
10 
input clk,
11 
input rst_n,
12 
output reg [
3
:
0
] q
13 
);
14 
15 
reg [
3
:
0
] p;
16 
17 
always@(posedge clk or negedge rst_n) begin
18 
 
if
(
!
rst_n)
19 
    p
<=
 
0
;
20 
 
else
21 
    p
<=
p
+
 
1
;
22 
end
23 
24 
always@(p) begin
25 
 
if
(p
==
 
9
)
26 
    q
=
 
0
;
27 
 
else
28 
    q
=
p;
29 
end
30 
endmodule

counter9_00

counter9_01

counter9_v2.v / Verilog

1 
/*
 
2 
(C) OOMusou 2008
http://oomusou.cnblogs.com
3 
4 
Filename    : counter9_v2.v
5 
Compiler    : Quartus II 7.2 SP3
6 
Description : count to 9?
7 
Release     : 07/18/2008 1.0
8 
*/
9 
module counter9_v2 (
10 
  input clk,
11 
  input rst_n,
12 
  output [
3
:
0
] q
13 
);
14 
15 
reg [
3
:
0
] p;
16 
17 
assign q
=
p;
18 
19 
always@(posedge clk or negedge rst_n) begin
20 
 
if
(
!
rst_n)
21 
    p
<=
 
0
;
22 
 
else
 
if
(p
==
 
9
)
23 
    p
<=
 
0
;
24 
 
else
25 
    p
<=
p
+
 
1
;
26 
end
27 
28 
endmodule

counter9_02

counter9_03

Conclusion

由模擬的波形圖得知,counter_v2才會數到9,你答對了嗎?

從block diagram中,可以發現兩者合成出來的電路是差異甚大,v1的reg q後面接了一個組合電路,經過一個比較器與多工器後『馬上』輸出結果,所以還沒數到9就被『攔胡』了,v2是個典型的循序電路,由比較器判斷的p,是從D-FF所提供的p,而這個p早已經輸出到q了,要攔也攔不下來,且9已經存在於D-FF中1個clock,要讓p = 0也是下一個clock的事情,所以在下一個clock出現q = 0。

多多觀察RTL Viewer所合成的電路與ModelSim模擬結果是增加Verilog功力的不二法門,共勉之。

See Also

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

你可能感兴趣的文章
双系统安装Ubuntu
查看>>
选择使用接口和抽象类的依据
查看>>
AFNetworking3.0 Https P12证书
查看>>
03数据结构——线性表(头节点和头指针)
查看>>
javascript 理解对象--- 定义多个属性和读取属性的特性
查看>>
优先级队列用法详解(priority_queue)
查看>>
windows下安装tesserocr
查看>>
第三章 熟悉常用的HDFS操作
查看>>
红黑树研究记录-代码实现
查看>>
Golang学习笔记——control_structure
查看>>
Spring之AOP
查看>>
hdu 2167 Pebbles
查看>>
HDU 4259 Double Dealing
查看>>
NOIP 2017 惊魂记
查看>>
JavaScript-函数
查看>>
《意志力》读后感
查看>>
Response的使用入门
查看>>
mysql----------mysql的一些常用命令
查看>>
推荐系统漫谈
查看>>
Netty之有效规避内存泄漏
查看>>