模可变计数器设计(Verilog语言)解答

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模可变计数器设计

(一)实验目的

1、进一步熟悉实验装置和Quartus n软件的使用;

2、进一步熟悉和掌握EDA 设计流程;

3 、学习简单组合、时序电路的EDA 设计;

4、学习计数器中二进制码到BCD 码的转换技巧;

5、学习实验装置上数码管的输出方法。

(二)设计要求完成设计、仿真、调试、下载、硬件测试等环节,在EDA 实验装置上实现模可变计数器功能,具体要求如下:

1 、设置一个按键控制改变模值,按键按下时模为10-99 之间(具体数值自行确定)的

数,没按下时模为100-199 之间(具体数值自行确定)的数;

2、计数结果用三位数码管十进制显示。

(三) 主要仪器设备

3、微机 1 台

4、QuartusII 集成开发软件 1 套

5、EDA 实验装置 1 套

(四) 实验步骤

主要有三个模块

1:一个模20 和模119 的计数器

2:数码管的显示

3:BCD 的调整

源程序:

module count (clk,m,en,rst,a,sel,SG,d);

input clk,m,en,rst;

output [7:0] SG;

output [2:0] sel;

output a;

(* synthesis, keep *) reg clk1;

(* synthesis, keep *) wire [3:0] gw,sw,bw;

/*(* synthesis, keep *) */reg [3:0]a;

reg [11:0] q;

reg [11:0] model;

reg [7:0] cnt,SG;

reg [2:0] sel;

reg [0:0]d;

output [0:0]d;

always @(posedge clk) begin cnt=cnt+1;

if (cnt==200) begin clk1=1'b1; cnt=0; end

else clk1=1'b0; //200 分频,CLK 为数码管扫描频率,CLK1 为计数频率

if (sel<2) sel=sel+1; else sel=0; end //sel 为数码管选择

always @(sel) begin

case (sel)

0: a=bw; //0 数码管为百位

1: a=sw; //1 数码管为十位

2: a=gw; //2 数码管为个位

default: a=0;

endcase

case (a)

0:SG<=8'b00111111; 1:SG<=8'b00000110;

2:SG<=8'b01011011; 3:SG<=8'b01001111;

4:SG<=8'b01100110; 5:SG<=8'b01101101;

6:SG<=8'b01111101; 7:SG<=8'b00000111;

8:SG<=8'b01111111; 9:SG<=8'b01101111; //8 段译码值default: SG=8'b11111111;

endcase end

always @(m)

if (m) model=12'b000000100000; // 模值20

else model=12'b000100011001; // 模值119

assign gw=q[3:0];

assign sw=q[7:4];

assign bw=q[11:8];

always @(posedge clk1,negedge rst)

begin

if (!rst) q=0;

else if (en)

begin

if (q

begin

if (gw==9) begin q=q+7; if (sw==9) q=q+96; end //BCD 调整

else q=q+1;

end

else q=0;

end

end

always @(q)

if(qvmodel) d<=0; else d<=1; endmodule

波形仿真:

iimulatioin Waveforms

Simulation sode : Tilling

A.

B Master Time Sar

19L9 ns ■[POinler: 39.3^1 us Imeival:

39.32 us Stan :

End:

he. 14 us 37.. 42 UH 33. 7 us

39.9B LLS

4k 26 us

54 us 4X B2 us

P 1 i

1

1

1

Clk1是计数频率,每来一个 clk1信号q 计数一次

Simula ion Wa^efor™ Sinulatlon lode: Tiling

如图所rst=1有效时开始计数 clk 为扫描频率

sel=0时数码管显示百位 a=0 sel=1时数码管显示十位 a=1 sel=2时数码管显示个位 a=3 m=1模20计数器 m=0模119计数器

管脚分配:

* I HI I

k * Jij

19.3ns J h

Roirter.

6fl.H us Interval.

68.09 UE Slarl End.

lane

<>0

□ S&

elk

<>1B clkl

曲+ 0-L

玮t

T IF L

en

^1.

n

CH- 1±1 sei

尬1.

田Q B i

El 勿

u 3.

dM

68.14 us

63.16 us ■

6E. 18 us

I

63.22 us 68. 24 us

W [1] X [3]连[01 X [1] X [3]迪[0] X [1] X [3] ® [o] X [1] X [3]址[0] II :

MasierTiiTiB Bar.

68.12 us

III

相关文档
最新文档