电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

常用逻辑的VerilogHDL实现VIP免费

常用逻辑的VerilogHDL实现_第1页
1/46
常用逻辑的VerilogHDL实现_第2页
2/46
常用逻辑的VerilogHDL实现_第3页
3/46
338第11 章 常用逻辑的Verilog HDL 实现 Verilog HDL 语言作为一种通用硬件描述语言,既可以完成数字系统核心处理,又可以完成外围控制芯片、存储芯片和显示器件的接口。加上可编程逻辑器件应用的日益广泛,有些基本模块的使用频率会相对较高。为了让读者更好掌握Verilog HDL 语言,并学以致用,本章给出了一些难度适中的常用的Verilog HDL 开发实例,包括时钟电路、数学运算、数码管、按键、CRC 编解码、存储器以及SPI 接口协议等。 11.1 时钟处理电路的Verilog HDL 实现 在CPLD/FPGA 设计中,时钟可以算作系统的“血液”。在时序电路设计中,几乎所有的信号都需要依靠时钟向前传递,因此在进行 VHDL 开发之前需要确定所需的时钟频率。如果是同步设计,还需要对异步输入信号进行同步整形处理。本节主要介绍分频电路、DCM/PLL模块以及同步整形电路的原理和实现。 11.1.1 整数分频模块 分频器是一种基本电路,通常用来对某个给定频率进行分频,以得到所需的频率。整数分频是数字逻辑开发中最基本的应用。 1.偶数分频模块 偶数倍分频是最简单的一种分频模式,可通过计数器计数实现,有多种实现方法。下面介绍一种最常用的方法,如要进行 N 倍偶数分频,那么可由待分频的时钟触发计数器计数,当计数器从 0 计数到 N/2-1 时,输出时钟进行翻转,并给计数器一个复位信号,使得下一个时钟从零开始计数,以此循环下去。这种方法可以实现任意的偶数分频。例11-1 给出的是一个 16 分频电路,其它倍数的分频电路可通过修改计数器的上限值得到。 例11-1 :使用Verilog HDL 程序完成16 分频电路。 module clk_div_16( clk_in, rst_n, clk_out ); input clk_in; input rst_n; output clk_out; reg [2:0] cnt; reg clk_out_t; always @(posedge clk_in) begin if (!rst_n) begin cnt <= 0; clk_out_t <= 0; end else begin 339 if (cnt == 3'b111) begin cnt <= 3'b000; clk_out_t <= ~clk_out_t; end else begin cnt <= cnt + 3'b001; end end end assign clk_out = clk_out_t; endmodule 上述程序的仿真结果如图11-1 所示,从中可以看出,在复位信号rst 为高的情况下,一个clk_out 的周期内有16 个clk_in 信号,表明clk_out 的频率是clk_in 的1/16,达到了16分频的目的。 图11-1 16分频电路仿真结果示意图 2.奇数分频模块 奇数倍分频有多...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

常用逻辑的VerilogHDL实现

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部