主从JK触发器设计同步计数器.docx

上传人:b****8 文档编号:30096634 上传时间:2023-08-04 格式:DOCX 页数:12 大小:63.74KB
下载 相关 举报
主从JK触发器设计同步计数器.docx_第1页
第1页 / 共12页
主从JK触发器设计同步计数器.docx_第2页
第2页 / 共12页
主从JK触发器设计同步计数器.docx_第3页
第3页 / 共12页
主从JK触发器设计同步计数器.docx_第4页
第4页 / 共12页
主从JK触发器设计同步计数器.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

主从JK触发器设计同步计数器.docx

《主从JK触发器设计同步计数器.docx》由会员分享,可在线阅读,更多相关《主从JK触发器设计同步计数器.docx(12页珍藏版)》请在冰豆网上搜索。

主从JK触发器设计同步计数器.docx

主从JK触发器设计同步计数器

文档编号:

WX_HW_0003

文档分类:

硬件技术文档

(A

A.硬件设计技术文档

 

主从JK触发器设计同步计数器方案

Version1.1

版本信息

版本

日期

描述

作者

V1.1

2011-10-31

用主从JK触发器设计同步计数器

王肖(04096070)

张紫阳(04096055)

目录

目录3

1.概述4

2.总体描述4

2.1.功能描述4

2.2.顶层框图4

2.3.引脚描述4

2.4.接口时序5

3.模块划分6

3.1概述(叙述一下划分的几个大的模块)6

3.2模块A6

3.2.1功能定义6

3.2.2信号描述6

3.2.3时序描述(包含必要的时序图以及文字说明)6

3.2.3祥细设计7

3.3模块B8

3.4模块C8

……8

4.模块分述(设计比较复杂的时候,根据需要对模块进行细化说明,需要加上模块分述这一部分。

)8

4.1模块A9

4.1.1.模块A_1(这部分的内容与模块化分中模块的说明相同)9

4.2.2模块A_29

4.2模块B9

4.3模块C9

5.验证方案9

6.测试方案9

7.设计开发环境9

8.设计开发计划9

1.概述

本设计采用主从JK触发器设计同步计数器。

2.总体描述

主从JK触发器由一个钟控D_FF和一个钟控T_FF组成,利用主从JK触发器实现一个同步计数器。

2.1.功能描述

本设计清零信号clear低电平有效,输入数据在时钟信号clock的上升沿被锁存,触发器在clock的下降沿输出,当count_enable信号为低电平时停止计数。

2.顶层框图

 

图2.1计数器顶层框图

2.3.引脚描述

表2.1顶层接口信号描述

名称

输入/输出

功能描述

clk

输入

50MHz的晶振时钟信号,50%的占空比.

clear

输入

低电平有效的清零信号,输入数据在时钟信号clock的上升沿被锁存。

Q

输出

触发器在clock的下降沿输出,当count_enable信号为高电平开始计数。

2.4.接口时序

清零信号clear低电平有效,输入数据在时钟信号clock的上升沿被锁存,触发器在clock的下降沿输出,当count_enable信号为高电平时计数器计数,Q自动加1。

具体时序关系如图2.1所示

图2.2计数器接口时序图

3.模块划分

本设计分为三个模块。

A:

顶层模块

B:

D_FF模块

.C:

T_FF模块

3.1概述(叙述一下划分的几个大的模块)

3.2模块A

modulecounter(Q,clock,clear);

//I/Oports

output[3:

0]Q;

inputclock,clear;

//InstantiatetheTflipflops

T_fftff0(Q[0],clock,clear);

T_fftff1(Q[1],Q[0],clear);

T_fftff2(Q[2],Q[1],clear);

T_fftff3(Q[3],Q[2],clear);

endmodule

3.2.1功能定义

本模块采用主从JK触发器设计一个同步计数器。

3.2.2信号描述

名称

输入/输出

功能描述

clk

输入

50MHz的晶振时钟信号,50%的占空比.

clear

输入

低电平有效的清零信号,输入数据在时钟信号clock的上升沿被锁存。

d

输入

指示进行数据载入,高有效。

时钟上升沿采样。

qbar

输出

执行载入操作时,载入的数据。

时钟上升沿采样。

q

输出

Q

输出

触发器在clock的下降沿输出,当count_enable信号为高电平开始计数。

表3.1模块A信号描述

3.2.3时序描述(包含必要的时序图以及文字说明)

图3.1计数器的序图

3.2.3祥细设计

3.1计数器详细结构

.3.3模块B

moduleedge_dff(q,qbar,d,clk,clear);

//Inputsandoutputs

outputq,qbar;

inputd,clk,clear;

//Internalvariables

wires,sbar,r,rbar,cbar;

//Dataflowstatements

//Createacomplementofsignalclear

assigncbar=~clear;

//Inputlatches

assignsbar=~(rbar&s),

s=~(sbar&cbar&~clk),

r=~(rbar&~clk&s),

rbar=~(r&cbar&d);

//Outputlatch

assignq=~(s&qbar),

qbar=~(q&r&cbar);

endmodule

//EdgetriggeredT-flipflop.Toggleseveryclock

//cycle.

3.4模块C

moduleT_ff(q,clk,clear);

//I/Oports

outputq;

inputclk,clear;

//InstantiatetheedgetriggeredDFF

//Complementofoutputqisfedback.

//Noticeqbarnotneeded.Emptyport.

edge_dffff1(q,,~q,clk,clear);

endmodule

//Ripplecounter

4.模块分述(设计比较复杂的时候,根据需要对模块进行细化说明,需要加上模块分述这一部分。

4.1模块A

4.2模块B

4.3模块C

.4.4模块D

5.验证方案

给出对于整个设计的验证方法,详见《xxxx总体仿真验证方案》。

源程序:

//EdgetriggeredDflipflop

moduleedge_dff(q,qbar,d,clk,clear);

//Inputsandoutputs

outputq,qbar;

inputd,clk,clear;

//Internalvariables

wires,sbar,r,rbar,cbar;

//Dataflowstatements

//Createacomplementofsignalclear

assigncbar=~clear;

//Inputlatches

assignsbar=~(rbar&s),

s=~(sbar&cbar&~clk),

r=~(rbar&~clk&s),

rbar=~(r&cbar&d);

//Outputlatch

assignq=~(s&qbar),

qbar=~(q&r&cbar);

endmodule

//EdgetriggeredT-flipflop.Toggleseveryclock

//cycle.

moduleT_ff(q,clk,clear);

//I/Oports

outputq;

inputclk,clear;

//InstantiatetheedgetriggeredDFF

//Complementofoutputqisfedback.

//Noticeqbarnotneeded.Emptyport.

edge_dffff1(q,,~q,clk,clear);

endmodule

//Ripplecounter

modulecounter(Q,clock,clear);

//I/Oports

output[3:

0]Q;

inputclock,clear;

//InstantiatetheTflipflops

T_fftff0(Q[0],clock,clear);

T_fftff1(Q[1],Q[0],clear);

T_fftff2(Q[2],Q[1],clear);

T_fftff3(Q[3],Q[2],clear);

endmodule

//Toplevelstimulusmodule

modulestimulus;

//Declarevariablesforstimulatinginput

regCLOCK,CLEAR;

wire[3:

0]Q;

initial

$monitor($time,"CountQ=%bClear=%b",Q[3:

0],CLEAR);

initial

$gr_waves("clk",CLOCK,

"Clear",CLEAR,

"Q",Q[3:

0],

"Q0",Q[0],

"Q1",Q[1],

"Q2",Q[2],

"Q3",Q[3]);

//Instantiatethedesignblockcounter

counterc1(Q,CLOCK,CLEAR);

//StimulatetheClearSignal

initial

begin

CLEAR=1'b1;

#34CLEAR=1'b0;

#200CLEAR=1'b1;

#50CLEAR=1'b0;

end

//Setuptheclocktotoggleevery10timeunits

initial

begin

CLOCK=1'b0;

forever#10CLOCK=~CLOCK;

end

//Finishthesimulationattime200

initial

begin

#400$finish;

end

endmodule

仿真图:

6.测试方案

(这个只对整个完整的电路功能的测试需要给出测试方案,对于模块设计不需要给出测试方案。

采用FPGA进行硬件测试。

使用Xilinx的ISE进行综合。

开发板采用Xilinx的ML403,FPGA型号为Virtex-4XC4VFX12。

详见《xxxx总体测试方案》。

7.设计开发环境

综合工具:

XilinxISE10.1

FPGA设计和仿真工具:

Modelsim,ActiveHDL8.1

8.设计开发计划

序号

时间

工作内容

说明

1

10-30

指定技术规范

2

10-30

按照技术规范,编写制定总体设计方案。

3

10-30

总体功能仿真。

4

10-31

时序仿真以及后期工作。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1