- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于QuartusII的同步计数器设计
目录
软件及语言概述
实验设计
学习感悟
参考文献
软件及语言概述
1.1软件介绍:
Quartus II是Altera公司在21 世纪初推出的FPGA/CPLD开发环境,是Altera前一代FPGA/CPLD集成开发环境MAX+PLUS II的更新换代产品,其优点是功能强大、界面友好、使用便捷。它支持原理图、VHDL、VerilogHDL以及AHDL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II支持Altera的IP内核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性,加快了设计速度。此外,Quartus II通过和DSP Builder工具与Matlab/Simulink的相结合,可以方便的实现各种DSP应用系统;支持Altera的片上可编程系统开发,集系统设计、嵌入式软件开发。可编程逻辑设计于一体,是一个综合性的开发平台。
Quartus II有严格的设计流程,分为设计输入与约束、分析和综合、布局布线、仿真及编程与配置等。本次仿真设计所用到的版本为Quartus II 9.0,其用户界面如下图所示:
1.2 Verilog HDL语言概述:
Verilog HDL即Verilog硬件描述语言,它主要应用于数字电路和系统设计、数字电路和系统仿真等,即利用计算机和相关软件对用Verilog HDL等硬件语言建模的复杂数字逻辑电路设计进行仿真验证,再利用综合软件将设计的数字电路自动综合,以得到符合功能需求并且在相应的硬件电路结构上可以映射实现的数字逻辑网表,然后布局布线,根据网表和选定的实现器件工艺特性自动生成具体电路,同时软件生成选定器件的延时模型,经过仿真验证确定无误后写入器件中,最终实现电路设计。Verilog HDL语言不仅定义了语法而且对每个语法结构都定义了清晰的模拟、仿真语义。因此用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。Verilog HDL提供了扩展的建模能力其中许多扩展最初很难理解。但是Verilog HDL语言的核心子集非常易于学习和使用这对大多数建模应用来说已经足够。当然完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。
实验设计
计数器的逻辑功能是用于记录时钟脉冲的具体个数。通常计数器最多能记忆时钟的最大数目m称为计数器的模2,即计数器的范围为0到m-1或m-1到0.其基本原理就是将几个触发器按照一定的顺序连接起来,然后根据触发器的组合状态,按照一定的技术规律随着时钟的变化来记忆时钟脉冲的个数。
计数器按照不同的分类方法可分为不同的类型,按照计数器中各个触发器时钟脉冲输入方式的不同分为同步计数器和异步计数器。
其中,同步计数器是指构成计数器的各个触发器的状态只在同一时钟信号的触发下才会发生变化的计数器。在这里,我主要以同步4位二进制计数器为设计对象。
2.1状态表
CLK
R
S
EN
工作状态
X
1
X
X
置零
↑
0
1
X
预置数
↑
0
0
1
计数
X
0
0
0
保持不变
同步4位二进制计数器的状态表
2.2设计步骤
在菜单栏中,选择File,新建一个工程,在根据工程向导设置相关内容。所有选项设置好后就可以在文本编辑框中输入相应的程序了。这里有个重要的点就是,保存时文件名必须和设计时所用的模块名保持一致。
采用文本编辑法,利用Verilog HDL语言来描述同步4位二进制计数器,代码如下:
module tongbu_cnt(co,q,clk,r,s,d,en);
output[3:0] q;
output co;
input clk,r,s,en;
input[3:0] d;
reg[3:0] q;
reg co;
always@(posedge clk)
begin
if(r)
begin q=d;end
else
if(s)
begin q=d;end
else
if(en)
begin q=q+1;
if(q==4b1111)
begin co=1;end
else
begin co=0;end
end
else
begin q=q;end
end
endmodule
程序编写完成后再进行进行编译,根据编译后的结果提示,修改响应的错误,直到所有错误被修改完成。编译成功后,如下图所示:
再新建波形仿真文件,弹出对话框如下图所示:
再选择需要添加的输入输出引脚的名字,如下图所示:
然后再对相
文档评论(0)