分频器设计——50MHZ(含verilog程序)学习资料

合集下载

中文版VerilogHDL简明教程

中文版VerilogHDL简明教程

Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。

被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。

数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。

Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。

所有这些都使用同一种建模语言。

此外,Verilog HDL 语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。

Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。

因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。

语言从C编程语言中继承了多种操作符和结构。

Verilog HDL提供了扩展的建模能力,其中许多扩展最初很难理解。

但是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。

当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。

历史Verilog HDL语言最初是于1983年由Gateway Design Automation公司为其模拟器产品开发的硬件建模语言。

那时它只是一种专用语言。

由于他们的模拟、仿真器产品的广泛使用,Verilog HDL 作为一种便于使用且实用的语言逐渐为众多设计者所接受。

在一次努力增加语言普及性的活动中,Verilog HDL语言于1990年被推向公众领域。

Open Verilog International (OVI)是促进Verilog发展的国际性组织。

1992年,OVI决定致力于推广Verilog OVI标准成为IEEE标准。

这一努力最后获得成功,Verilog 语言于1995年成为IEEE标准,称为IEEE Std 1364-1995。

verilog教程

verilog教程

verilog教程Verilog是一种硬件描述语言(HDL),用于描述数字系统的行为和结构。

它是一种流行的HDL,广泛用于硬件设计和验证领域。

本教程将介绍Verilog的基本概念和语法,以帮助初学者入门。

一、Verilog的基本概念1.1 什么是VerilogVerilog是一种描述数字系统的语言,它可以用来描述硬件电路、验证设计的正确性以及进行电路仿真。

1.2 Verilog的应用领域Verilog广泛应用于硬件设计和验证领域,包括用于开发ASIC(应用特定集成电路)、FPGA(现场可编程门阵列)以及其他数字系统的设计。

1.3 Verilog的版本Verilog有多个版本,包括Verilog-1995、Verilog-2001以及最新的Verilog-2005、这些版本之间有一些语法和功能上的差异。

二、Verilog的语法结构2.1模块和端口在Verilog中,所有的电路描述都是由模块(module)组成的。

模块是电路的基本组成单元,可以看作是一个黑盒子,它接受一些输入,产生一些输出。

2.2信号声明在Verilog中,我们需要声明所有的输入和输出信号。

可以使用`input`和`output`关键字来声明这些信号。

2.3电路实现Verilog允许使用多种语句和结构来描述电路的行为和结构。

这些语句包括顺序语句、条件语句、循环语句以及层次结构。

2.4实例化模块在一个模块中,我们可以实例化其他的模块。

这样可以将一个大的电路拆分成多个小的模块,方便编写和测试。

三、Verilog的仿真和验证3.1静态验证Verilog语言本身提供了很多语法和语义层面的验证功能,对于语法和类型错误会有相应的提示。

3.2激励设计在进行电路验证时,我们需要为输入信号提供激励。

Verilog提供了一种称为`testbench`的特殊模块,用于生成输入信号并将其应用到待验证的电路中。

3.3波形仿真在Verilog中,我们可以使用仿真器来模拟电路的行为,并生成波形图来验证电路是否按预期工作。

实验六 Verilog设计分频器计数器电路答案

实验六 Verilog设计分频器计数器电路答案

实验六Verilog设计分频器/计数器电路一、实验目的1、进一步掌握最基本时序电路的实现方法;2、学习分频器/计数器时序电路程序的编写方法;3、进一步学习同步和异步时序电路程序的编写方法。

二、实验内容1、用Verilog设计一个10分频的分频器,要求输入为clock(上升沿有效),reset(低电平复位),输出clockout为4个clock周期的低电平,4个clock周期的高电平),文件命名为fenpinqi10。

v.2、用Verilog设计一异步清零的十进制加法计数器,要求输入为时钟端CLK(上升沿)和异步清除端CLR(高电平复位),输出为进位端C和4位计数输出端Q,文件命名为coute r10.v。

3、用Verilog设计8位同步二进制加减法计数器,输入为时钟端CLK(上升沿有效)和异步清除端CLR(低电平有效),加减控制端UPDOWN,当UPDOWN为1时执行加法计数,为0时执行减法计数;输出为进位端C和8位计数输出端Q,文件命名为couter8.v。

4、用VERILOG设计一可变模数计数器,设计要求:令输入信号M1和M0控制计数模,当M1M0=00时为模18加法计数器;M1M0=01时为模4加法计数器;当M1M0=10时为模12加法计数器;M1M0=11时为模6加法计数器,输入clk上升沿有效,文件命名为mcout5。

v。

5、VerilogHDL设计有时钟时能的两位十进制计数器,有时钟使能的两位十进制计数器的元件符号如图所示,CLK是时钟输入端,上升沿有效;ENA是时钟使能控制输入端,高电平有效,当ENA=1时,时钟CLK才能输入;CLR是复位输入端,高电平有效,异步清零;Q[3.。

0]是计数器低4位状态输出端,Q[7..0]是高4位状态输出端;COUT是进位输出端.三、实验步骤实验一:分频器1、建立工程2、创建Verilog HDL文件3、输入10分频器程序代码并保存4、进行综合编译5、新建波形文件6、导入引脚7、设置信号源并保存8、生成网表9、功能仿真10、仿真结果分析由仿真结果可以看出clockout输出5个clock周期的低电平和5个clock的高电平达到10分频的效果,设计正确。

1Hz-50MHz频率计晶振测量频率测量五位数码管显示

1Hz-50MHz频率计晶振测量频率测量五位数码管显示

1Hz-50MHz频率计晶振测量频率测量五位数码管显示中文描述:这是一个基于PIC单片机的频率计,带有晶振测量功能和可编程的加减频率设置,五位数码管显示,方便直观,全部使用直插元件,电路简单,易于制作。

电路特点:•可测量频率范围1赫兹-50兆赫兹(1Hz-50MHz);•可测量大部分常用晶振的振荡频率;•五位精度分辨率(例如0.0050千赫,4.5765兆赫,11.059兆赫);•自动量程转换,不需人为切换;•可编程的加减频率设置,用于测量无线电收发机等设备;•可选择节电模式,如果15秒内频率没有明显变化自动关闭显示;•可以使用通用的USB 5V接口供电,也可使用外接直流电源或9V 电池。

•元件数量少,全部直插元件,安装调试简单。

•PCB尺寸:80*53毫米•单套重量:0.034KG以小数点是否闪烁指示测量单位,当测试频率数值为KHZ时小数点闪烁,当测试频率为MHZ时小数点不闪烁。

可以通过编程模式设定加减某一频率,程序内置四种频率455kHz, 4.1943MHz, 4.4336MHz, 10.700MHz可直接用来设定。

全部直插元件,按PCB丝印正确焊接即可,焊接完毕后用标准信号源输入信号,调节黄色可调电容使显示数值与信号频率相等即可。

可使用本店的信号发生器进行调整,如无标准信号,也可以使用精度较好的晶振直接校准。

电源可以使用USB转3.5毫米电源线,也可以在-和+焊盘处直接输入5-9V直流电源。

英文描述:100% Brand new and high quality!Designed to measure the oscillation frequency of the most crystal oscillators.Based on for PIC microcontroller can measure frequency of 1 Hz to 50 MHz.Five digits accuracy.Optional power-saving mode: automatically turns the display.General USB interface for power supply, power supply or 9V battery can also be used be used.SpecificationsColor: RedMaterial: PBSFrequency range: 1 Hz-50 MHzCrystal Test Range: 4 MHz-48 MHzBuilt Item Size: 8 * 5.5 * 0.7 cm / 3.2 * 2.2 * 0.3 inches。

Verilog语言基础知识

Verilog语言基础知识
2.常量
在Verilog HDL中,用parameter来定义常量,即用parameter来定义一个标志符,代表一个常量,称为符号常量。其定义格式如下:
parameter 参数名1=表达式,参数名2=表达式,参数名3=表达式……;
例如:
parameter sel=8,code=8'ha3;
//分别定义参数sel为常数8(十进制),参数code为常数a3(十六进制)
Verilog HDL中共有19种数据类型。数据类型是用来表示数字电路中的数据存储和传送单元的。在此介绍4个最基本的数据类型:integer型、parameter型、reg型和wire型。
Verilog HDL中也有常量和变量之分,他们分属以上这些类型。
6.2.1 常量
在程序运行过程中,其值不能被改变的量称为常量。
assign {cout,sum}=ina+inb+cin;//全加
endmodule
【例6.2】一个8位计数器的Verilog HDL源代码
module counter8(out,cout,data,load,cin,clk);
output[7:0]out;
output cout;
input[7:0] data;
6.1.2 Verilog HDL模块的结构
Verilog HDL的基本设计单元是"模块(block)"。一个模块是由两部分组成的,一部分描述接口;另一部分描述逻辑功能,即定义输入是如何影响输出的。下面举例说明,图6.1示出了一个"与-或-非"门电路。
图6.1"与-或-非"电路
该电路表示的逻辑函数可以写为:
6.2.2 变量

Verilog常用分频器的实现

Verilog常用分频器的实现

Verilog常用分频器的实现分频器是指使输出信号频率为输入信号频率整数分之一的电子电路。

在许多电子设备中如电子钟、频率合成器等,需要各种不同频率的信号协同工作,常用的方法是以稳定度高的晶体振荡器为主振源,通过变换得到所需要的各种频率成分,分频器是一种主要变换手段。

早期的分频器多为正弦分频器,随着数字集成电路的发展,脉冲分频器(又称数字分频器)逐渐取代了正弦分频器。

下面以Verilog HDL语言为基础介绍占空比为50%的分频器。

1.偶分频偶分频比较简单,假设为N分频,只需要计数到N/2‐1,然后时钟翻转、计数清零,如此循环就可以得到N(偶)分频。

代码如下。

module fp_even(clk_out,clk_in,rst);input clk_in,rst;output clk_out;reg [7:0] cnt;reg clk_out;`define N 6always@(posedge clk_in or negedge rst)beginif(!rst)begincnt<=0;clk_out<=0;endelse beginif(cnt==`N/2‐1)beginclk_out<=~clk_out;cnt<=0;endelse cnt<=cnt+1;endendendmodule2.奇分频实现奇数分频(N)分频,分别用上升沿到(N-1)/2,再计数到N-1;用下降沿计数到(N-1)/2,再计数到N-1。

得到两个波形,然后把它们相或即可得到N分频。

代码如下。

module fp_odd(clk_in,clk_out,rst,clk_neg,clk_pos);input clk_in,rst;output clk_out,clk_pos,clk_neg;reg [7:0] cnt_pos,cnt_neg;reg clk_pos,clk_neg;`define N 5always@(posedge clk_in or negedge rst) //从零到N‐1不停地循环计数(上升沿)beginif(!rst) cnt_pos<=0;else if(cnt_pos==`N‐1) cnt_pos<=0;else cnt_pos<=cnt_pos+1;endalways@(posedge clk_in or negedge rst)beginif(!rst) clk_pos<=0;else if( cnt_pos==(`N‐1)/2 ) clk_pos<=~clk_pos;else if(cnt_pos==`N‐1) clk_pos<=~clk_pos;endalways@(negedge clk_in or negedge rst) //从零到N‐1不停地循环计数(下降沿)beginif(!rst) cnt_neg<=0;else if(cnt_neg==`N‐1) cnt_neg<=0;else cnt_neg<=cnt_neg+1;endalways@(negedge clk_in or negedge rst)beginif(!rst) clk_neg<=0;else if( cnt_neg==(`N‐1)/2 ) clk_neg<=~clk_neg;else if(cnt_neg==`N‐1) clk_neg<=~clk_neg;endassign clk_out=clk_neg|clk_pos;endmodule3.任意占空比的任意分频在 verilog程序设计中,我们往往要对一个频率进行任意分频,而且占空比也有一定的要求。

Verilog 频率计 电子实验报告

Verilog 频率计 电子实验报告

电子科技大学设计论文论文题目:基于Verilog HDL频率计设计与实现指导老师:学生姓名:学号:专业:摘要在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。

测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。

电子计数器测频有两种方式:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法,如周期测频法。

直接测频法适用于高频信号的频率测量,间接测频法适用于低频信号的频率测量。

本文阐述了用V erilogHDL语言设计了一个简单的数字频率计的过程关键词:周期;EDA;VerilogHDL;数字频率计;波形仿真SummaryIn electronics, the frequency is one of the most basic parameters, and m easurement program with a lot of electric parameters, the measurement re sult-s have a very closerelationship, and frequency measurement become s more important. There are several ways of measuring frequency, the elec tronic counter to measure frequency with high precision, easy to use, rapi d measurement, and easy to automate the measurement process, etc., is o ne of the important means of frequency measurement. Electroniccounter freq uency measurement in two ways: First, the direct frequency measurement method to measure the number of pulses of the measured signal, that is, in a certain gatetime; indirect frequency measurement method, such as the cycl e frequency measurement method. Direct frequency measurement method f or high-frequency signal frequency measurement, frequency measurements i ndirectly measured the frequency method is suitable for low-frequency sign als. This paper describes the design of a simple digital frequency meter usi ng Verilog HDL languageKeywords: period; the EDA; the Verilog HDL; digital frequency meter; wavef orm simulation目录1引言 (1)1.1频率计概述 (1)1.2设计目的 (2)1.3设计内容 (2)1.4频率测量的思想和方法 (2)2 Verilog HDL 简介 (4)3 数字频率计系统框图 (5)3.1数字频率计系统部件介绍 (5)3.2数字频率计系统模块划分结构 (6)4 数字频率计程序设计及实现 (7)4.1分频模块div_clk (7)4.2基准频率选择模块sw_sel (8)4.3门控模块gate_ctrl (8)4.4计数模块counter (9)4.5锁存器模块latch (11)4.6显示模块 display (13)4.7顶层模块 topfile (14)5 设计实现 (16)5.1实验设备 (16)5.2管脚分布 (17)5.3下载过程 (17)6 系统测试与结果分析 (18)6.1系统测试 (18)6.2 结果分析: (19)7总结 (20)7.1 结束语 (20)7.2谢辞 (21)参考文献 (21)附录 (21)1引言在电子测量领域中,频率测量的精确度是最高的,可达10—10E-13数量级。

verilog时钟分频设计

verilog时钟分频设计

verilog时钟分频设计1.偶分频模块设计偶分频意思是时钟模块设计最为简单。

首先得到分频系数M和计数器值N。

M = 时钟输入频率 / 时钟输出频率N = M / 2如输入时钟为50M,输出时钟为25M,则M=2,N=1。

偶分频则意味着M为偶数。

以M=4,N=2为例,我们希望得到的输出时钟时序如下:因此只需要将counter以clk_in为时钟驱动计数,当counter = (N-1)时,clk_out翻转即可。

verilog代码如下,其中WIDTH为(N的位宽-1):module time_adv_even #(parameter N = 2,WIDTH = 7)(input clk,input rst,output reg clk_out);reg [WIDTH:0]counter;always @(posedge clk or posedge rst) beginif (rst) begin// resetcounter <= 0;endelse if (counter == N-1) begincounter <= 0;endelse begincounter <= counter + 1;endendalways @(posedge clk or posedge rst) beginif (rst) begin// resetclk_out <= 0;endelse if (counter == N-1) beginclk_out <= !clk_out;endendendmoduletestbench测试8分频即N=4,ISE仿真结果如下:2.奇分频模块设计奇分频需要通过两个时钟共同得到。

首先得到分频系数M和计数器值N。

M = 时钟输入频率 / 时钟输出频率N = (M-1) / 2如输入时钟为50M,输出时钟为10M,则M=5,N=2。

奇分频则意味着M为奇数。

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

分频器设计——50M H Z(含v e r i l o g
程序)
分频器设计
一、实验目的
1、熟悉分频器的原理;
2、掌握采用Verilog HDL语言设计分频器的方法;
3、进一步学习利用VerilogHDL语言进行层次设计的方法。

二、实验内容
1、采用Verilog语言设计一个十分频器,记录Verilog程序;
2、对十分频器进行功能仿真,观察仿真波形;
3、仿真没有问题后,将分频比改为50000000,实现一个50M分频器。

利用此分频器和开发板上的50MHz时钟信号,得到1Hz的秒脉冲信号,完成如图1-2.28所示的秒计数器。

(拨码开关)
程序设计如下:
module fenp(clk_out,clk_in,reset); output clk_out;
input clk_in;
input reset;
reg [1:0] cnt;
reg clk_out;
always@(posedge clk_in or posedge reset) begin
if(reset)
begin
cnt<=0;
clk_out<=0;
end
else
begin
if(cnt==24999999)
begin
clk_out<=!clk_out;
cnt<=0;
end
else
cnt<=cnt+1;
end
end
endmodule
本程序经验证,完全可以实现实验要求。

文章来自某大学EDA实验课。

相关文档
最新文档