verilog设计一个可控的10000进制同步可逆计数器

来源:百度知道 编辑:UC知道 时间:2024/05/28 14:20:51
设计要求:
(1)使用LPM_Counter计数器产生多种分频输出作为计数时钟和动态显示时钟。(实验板上产生50MHz的时钟信号)。
(2)计数器的功能是从0到9999计数,并能以十进制数的形式在七段数码管上显示出来。
(3)该计数器有一个1个复位端nclr和两个控制端adj_plus和adj_minus,在这些控制信号的作用下(见下表),计数器具有复位、增或减计数、暂停的功能。
编写以上的程序模块,用仿真器检测模块设计得正确与否,并给出仿真波形。配置下载后观察所设计电路的功能.
计数器的功能表
nclr adj_plus adj_minus 功 能
0 × × 复位为0
1 1 0 递增计数
1 0 1 递减计数
1 × × 暂停计数
不会的别乱回答 请严肃对待
拒绝无聊份子打扰
想骗分的可以令求他路

1.4位7段数码管用动态扫描。
2.用if语句来判断复位暂停或者加减,如下。
always @(posedge clk)
begin
if(nclr)
out<=0;
else if(adj==3'b110)
i<=0;
j<=0;
x<=0;
y<=0;
begin
i<=i+1;
if(i==9)
begin
i<=0;
j<=j+1;
end
if(j==9)
begin
j<=0;
x<=x+1;
end
if(x==9)
begin
x<=0;
y<=y+1;
end
else if(adj==3'b101)
i<=9;
j<=9;
x<=9;
y<=9;
begin
i<=i-1;
if(i==0)
begin
i<=9;
j<=j-1;
end
if(j==0)
begin