基于verilog hdl语言的多功能波形发生器设计
基于FPGA多功能波形发生器的设计毕业设计论文 推荐

江西师范大学科学技术学院J I A N G X I N O R M A L U N I V E R S I T YS C I E N C E A N D T E C H N O L O G Y C O L L E G E本科生毕业设计(论文)中文题目:基于FPGA多功能波形发生器的设计Design Of FPGA-based Digital Signal Generator声明本人郑重声明:所呈交的学位论文,是本人在指导教师指导下,独立进行研究工作所取得的成果。
尽我所知,另文中已经注明引用的内容外,论文由本人独立完成。
为本文的研究做出了重要贡献的个人和集体,均已在文中以明确的方式标明。
本声明的法律结果由本人承担。
本毕业设计是本人在江西师范大学科学技术学院读书期间在指导教师的细心指导下完成的,在此感谢为本文研究提供文献的集体及个人。
声明人学号:1008068027 声明人签名:朱忠浩签名日期:2014 年 3 月2 日基于FPGA多功能波形发生器的设计摘要本文所设计内容就是以FPGA为平台用VHDL语言设计多种波形系统来实现数字信号发生器的设计,FPGA严密性高,功能消耗较低,所占空间小,更可靠等特点,设计的时候可不必过于考虑硬件连接;本设计中采用VHDL语言进行系统描述,使数字信号发生器能产生正弦波、三角波、方波、等独立波形,而且对所产生的各种波形的频率及幅度的调节更为方便,还可用AD与低通实现数字电路到模拟电路的的转换。
关键词:多种波形发生器;FPGA;VHDL; QuartusⅡAbstractDigital signal transmitter as a test facility is an important part of information processing system. In the production of a wide range of application of life. This content is designed by Altera, based on FPGA design of digital signal generator, FPGA has a high density, low power consumption, small size, high reliability, cannot have too much to consider wher designing specific hardware connection; the design of the application of VHDL hardware description language to describe, so that the digital signal generator can produce sine, square, triangle, sawtooth waveforms of three independent,and is able to produce four waveforms by the frequency and amplitude adjustment. AD and low pass filter realize the change between digital electricity and simulative electricity.Key words:Digital Waveform Generator; FPGA;VHDL; QuartusⅡ目录声明 ........................................................................................................................................ 错误!未定义书签。
FPGA 用Verilog HDL实现三角波,三相方波程序

FPGA——用Verilog HDL进行三角波和三相方波的编写三角波module triangle(inputsys_clk,output [2:0]sda);reg[3:0]a=0;regai=0;always@(posedgesys_clk)beginif(ai==0)begina=a+1;if(a==7)ai<=1;endelsebegina=a-1;if(a==0)ai<=0;endendassignsda[0]=a[0];assignsda[1]=a[1];assignsda[2]=a[2];endmodule三相方波第一种方法:modulepwmabc(inputsys_clk,output [2:0]abc);regtriga=0;regtrigb=1;regtrigc=0;reg[15:0] cnt1=0;reg[15:0] cnt2=20;reg[15:0] cnt3=40;always@(negedgesys_clk)beginif(cnt1>59)begintriga=~triga;cnt1<=1;endelsecnt1<=cnt1+1;if(cnt2>59)begintrigb=~trigb;cnt2<=1;endelsecnt2<=cnt2+1;if(cnt3>59)begintrigc=~trigc;cnt3<=1;endelsecnt3<=cnt3+1;endassignabc[0]=triga;assignabc[1]=trigb;assignabc[2]=trigc;endmodule第二种方法module fangbo0(inputsys_clk,output [2:0]sda);reg [31:0]halftemple_counter0=0;reg [31:0]halftemple_counter1=0;reg [31:0]halftemple_counter2=0;reg [1:0]temple_clk0=1;//第一相的初始值是高电平(初始的高低电平是根据我给你看的相位图来的)reg [1:0]temple_clk1=1;//第二相的初始值是高电平reg [1:0]temple_clk2=0;//第三相的初始值是底电平//我在设计三相方波的时候用的比较笨的方法,就是三相方波一项一项的来设置。
VHDL多路波形发生器实验报告

VHDL多路波形发生器实验报告一、基本要求:1、对输入时钟信号进行分频,实现三路互差120°的信号。
2、实现输出信号的占空比控制clk: 输入时钟信号reset: 同步复位信号(低电平有效)div: 输入分频控制信号(注意:6n分频)ctrl: 占空比控制信号ctrl=1时, 占空比为1:1ctrl=2时, 占空比为1:2ctrl=3时, 占空比为2:1A,B,C: 三路输出信号二、设计思路:1.实验为6n分频,用变量s来控制,0~6n-1这六个数,当时钟信号每来一个上升沿时加1,当为6n-1时清零;2.定义N为常量,通过改变N的值改变分频;3.ctrl值不同时,占空比不同,用case语句控制,ctrl分别为01,10,11和其他;4.具体波形的实现用if语句,当占空比为1时,A输出信号在s=0和s=3*n时翻转,B输出信号在s=2*n和s=5*n时翻转,C输出信号在s=4*n和s=n的时候翻转。
当占空比为1:2时,A输出信号在s=0和s=2*n时翻转,B输出信号在s=2*n和s=4*n时翻转,C输出信号在s=4*n和s=0的时候翻转。
当占空比为2:1时,A输出信号在s=0和s=4*n时翻转,B输出信号在s=2*n和s=0时翻转,C输出信号在s=4*n和s=2*n的时候翻转;5.在占空比为1和1:2时,C输出信号应比B慢120度,但是实际输出超前B,所以要对C输出进行反相;同理,在占空比为2:1时,要对B、C分别进行反向。
6.用if语句判断是否复位,若非,则执行case语句。
三、流程图:四、源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity top isport(clk,reset:in std_logic;ctrl:in std_logic_vector(1 downto 0);A,B,C:out std_logic);end top ;architecture rel of top issignal temp1,temp2,temp3,temp4,temp5 : std_logic; constant N: integer:=1;signal s:integer range 0 to 6*N-1 ;beginprocess(clk,reset,ctrl)beginif (reset='0') thentemp1<='0';temp2<='0';temp3<='0';temp4<='0';temp5<='0';s<=0;elsecase ctrl iswhen "01"=>if (clk 'event and clk='1') thenif s=6*N-1 thens<=0;elses <= s+1;end if;if s=0 thentemp1<= not temp1;end if;if s=3*N thentemp1<= not temp1;end if;if s=2*N thentemp2<= not temp2;end if;if s=5*N thentemp2<= not temp2;end if;if s=4*N thentemp4<= not temp4;end if;if s=N thentemp4<= not temp4;end if;end if;temp3<= not temp4;when "10"=>if (clk 'event and clk='1') thenif s=6*N-1 thens<=0;elses <= s+1;end if;if s=0 thentemp1<= not temp1;end if;if s=2*N thentemp1<= not temp1;end if;if s=2*N thentemp2<= not temp2;end if;if s=4*N thentemp2<= not temp2;end if;if s=4*N thentemp4<= not temp4;end if;if s=0 thentemp4<= not temp4;end if;end if;temp3<= not temp4;when "11"=>if (clk 'event and clk='1') thenif s=6*N-1 thens<=0;elses <= s+1;end if;if s=0 thentemp1<= not temp1;end if;if s=4*N thentemp1<= not temp1;end if;if s=2*N thentemp5<= not temp5;end if;if s=0 thentemp5<= not temp5;end if;if s=4*N thentemp4<= not temp4;end if;if s=2*N thentemp4<= not temp4;end if;end if;temp2<= not temp5;temp3<= not temp4;when others=>temp1<='0';temp2<='0';temp3<='0';end case;end if;end process;A<=temp1;B<=temp2;C<=temp3;end rel;五、仿真波形:整体波形:当ctrl=1 当ctrl=2 当ctrl=3复位当ctrl=其他:六、实验过程遇到的问题:在程序设计时,开始不知该怎样使A,B,C互差120度,开始是想通过定义一个变量,每来一个上升沿加1,从0开始,A路信号除3n 取余为0则翻转,B路信号除3n取余为1则翻转,C路信号除3n取余为2则翻转,我觉得这样的想法应该没有错,可是实际却调不出来,可能是某处逻辑有问题,后来就模仿老师给的6分频程序,设计了现在的程序。
基于FPGA的多功能波形发生器的设计

基于FPGA的多功能波形发生器的设计摘要:主要研究了采用FPGA 和VHDL 语言,运用自顶向下设计思想设计多功能数字波形发生器的问题。
数字波形发生器基于FPGA 设计,VHDL编程实现,集成在1 片Altera 公司的EPF10K10LC84-3芯片上,其输出的8 位数据通过D/A 转换并经滤波电路后即得所需波形。
频率可从100~1000Hz 等步进调节,最小步进100Hz。
系统频率范围宽,频率和幅度精度高。
关键词:FPGA;VHDL;EDA;波形发生器中图分类号:TN70 文献标识码:A 文章编号:1006-4311(2010)09-0232-020 引言电子设计的必由之路是数字化,这已成为共识。
在数字化的道路上,我国的电子技术经历了一系列重大的变革。
从应用小规模集成电路构成电路系统,到广泛地应用微控制器或单片机(MCU),在电子系统设计上发生了具有里程碑意义的飞跃。
电子产品正在以前所未有的速度进行着革新,主要表现在大规模可编程逻辑器件的广泛应用。
在可编程芯片CPLD(复杂可编程逻辑器件)和FPGA(现场可编程门阵列)上实现电子系统的设计,必将成为今后电子系统设计的一个发展方向。
所以电子设计技术发展到今天,又将面临另一次更大意义的突破,即CPLD/ FPGA 在EDA(电子设计自动化)基础上的广泛应用。
本设计将采用基于VHDL的EDA设计来实现波形发生器的各种功能。
1 EDA简介1.1 EDA 技术的涵义 EDA是电子设计自动化(Electronic Design Automation)的缩写。
它是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统的一门新技术。
EDA技术可以实现逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化,逻辑布局布线、逻辑仿真。
基于verilog hdl语言的多功能波形发生器设计

《基于Verilog HDL语言的多功能波形发生器设计》第1页共22页基于Verilog HDL语言的多功能波形发生器设计学生姓名:指导老师:摘要:本文主要探索了应用EDA灵活可重复编程和方便在系统重构的特性,以Verilog HDL为设计语言,将硬件功能以软件设计来描述,提高了产品的集成度,缩短开发周期。
所设计的波形发生器可产生正弦波(sina_wave)、锯齿波(swat_wave)、矩形波(squr_wave)、三角波(trig_wave)四种信号,能够实现信号的转换并且频率可调;设计的频率计以1Hz为基准信号,测量的范围是1Hz—9999Hz,测量的结果以四位十进制的形式输出。
能实现任意波形的输出并且能够测量外来信号的频率,这也是本文的设计思路。
关键词: DDS;;Verilog HDL;EDA;Max+PlusⅡ;波形发生器Abstract:This article explores the application of EDA to facilitate flexible and reprogrammable and reconstruction in the system features to Verilog HDL design language, the hardware functions to software design to describe and improve product integration, shorten the development cycle. Waveform generator designed to produce sine wave (sina_wave), ramp (swat_wave), rectangular wave (squr_wave), triangular wave (trig_wave) four signals, to achieve signal conversion and frequency adjustable; designed to 1Hz frequency counter For the reference signal, measured in the range 1Hz-9999Hz, the measurement results in the form of four decimal output. which is the design idea of this article .Key words: DDS; Verilog HDL;EDA; Max+PlusⅡ; a rbitrary waveform generator目录1 引言 (1)2 课题背景及相关技术 (1)3 理论基础 (2)3.1 Verilog HDL语言概述 (2)3.2 Max+plusII简介 (4)4 EDA多功能波形发生器详细设计 (6)4.1设计思路 (6)4.2任意波形发生器的分块设计 (6)5 任意波形发生器的仿真与实现 (8)5.1指针控制模块的仿真与实现 (8)5.2数字频率计的仿真与实现 (9)5.3系统设计有待提高和改进的地方 (12)6 小结 (13)参考文献 (14)附录 (15)1 引言随着数字电子技术迅猛发展,信号源作为常用的电子产品设计工具,其应满足精度高、速度快、分辨率高等要求。
课题设计 基于FPGA的多功能波形发生器的设计

课题实训基于FPGA的多功能波形发生器的设计一、实训目的1.懂得利用FPGA芯片实现多种波形的产生方法2.懂得多功能波形发生器的结构组成3.懂得一种复杂FPGA电路的设计二、实训器材1.EDA实验箱1台2.微型计算机1台3.MAX+PLUSII10.2软件1套4.下载电缆1条三、实训原理设计一个多功能波形发生器。
该波形发生器能产生正弦波、方波、三角波和由用户编辑的特定形状波形。
具体要求如下:(1)具有产生正弦波、方波、三角波、锯齿波4种周期性波形的功能。
(2)用键盘输入编辑生成上述4种波形(同周期)的线性组合波形。
(3)具有波形存储功能。
(4)输出波形的频率范围为100Hz~200kHz;重复频率可调,频率步进间隔≤100Hz。
(5)输出波形幅度范围0~5V(峰-峰值),可按步进0.1V(峰-峰值)调整。
(6)具有显示输出波形的类型、重复频率(周期)和幅度的功能。
(7)用键盘或其他输入装置产生任意波形。
多功能波形发生器系统由以下四部分组成.输入部分、FPGA部分、DAC、显示部分组成。
多功能波形发生器方框图四、设计程序(参考程序)--功能:实现4种常见波形正弦、三角、锯齿、方波(A、B)的频率、幅度可控输出(方波--A的占空比也是可控的),可以存储任意波形特征数据并能重现该波形,还可完成--各种波形的线形叠加输出。
--说明:SSS(前三位)和SW信号控制4种常见波形种哪种波形输出。
4种波形的频率、--幅度(基准幅度A)的调节均是通过up、down、set按键和4个BCD码置入器以及一--个置入档位控制信号(ss)完成的(AMP的调节范围是0~5V,调节量阶为1/51V)。
--其中方波的幅度还可通过u0、d0调节输出数据的归一化幅值(AMP0)进行进一步--细调(调节量阶为1/(51*255)V)。
方波A的占空比通过zu、zp按键调节(调节--量阶1/64*T)。
系统采用内部存储器——RAM实现任意输入波形的存储,程序只支--持键盘式波形特征参数置入存储,posting 为进入任意波置入(set)、清除(clr)状态--控制信号,SSS控制存储波形的输出。
Verilog期末实验报告—波形发生器

一、实验目的使用Verilog 软件编写四种波形任意发生器的源代码,用modelsim 软件进行仿真测试,进一步强化Verilog ,modelsim 软件的编程能力为进一步的编程学习打下良好的基础。
二、实验原理2.1该任意波形发生器要实现三个功能:(1)通过计数器并结合拼接操作产生四种波形正弦波,方波,三角波1,三角波形的5位数据地址。
(2).设定ROM 中对应波形地址地址的8位数值,将所有波形数值存储到ROM 中。
(3).设定2位的波形选择开关端口。
2bit00000~0011101000~011113bit data[7:0]10000~1011111000~11111 图 1整体设计方案2.2 四种波形要在一个周期内等间隔取8个点,定义对应的数据,下图为示意图,由于编程序需要,数据会进行相应的修改。
地址发生器(0-7)正弦波方波三角波1三角波2clk reset 波形选择1-111正弦波方波三角波1三角波2y xx88yyx81图2 四种波形一个周期内的取样示意图2.3 四种波形数据地址对应的数据的存储器ROM根据示意图,由于实际情况需要,将正弦波平移至x轴以上,并将所有波形的峰峰值取大100倍。
下表1是ROM存储器三、实验内容3.1 任意波形发生器verilog程序代码:module wave(data,clk,add1,reset);//顶层模块端口定义output[7:0]data;input clk,reset;input[1:0] addr1;Wire[1:0] addr1;wire clk,reset;//输入输出变量定义ADDR 4(addr,clk,addr1,reset);//地址发生器模块调用rom 1(addr,data);//ROM存储器模块调用endmodulemodule ADDR(addr,clk,addr1,reset);output[4:0] addr;input clk,reset;wire clk,reset;reg[2:0] addr2;wire[1:0] addr1;reg[4:0] addr;initial addr2=3'b000; //定义计数初值always @(posedge clk or posedge reset)//每当有clk,或reset信号开启程序beginif(reset)beginaddr2<=0;//同步复位addr<=0;endelse if(addr2>=7)//addr2计数至7时,addr2复位beginaddr2<=0;endelsebeginaddr2<=addr2+1;//addr2由0至7计数addr<={addr1,addr2};//addr1与addr2地址拼接为addr的最终地址endendendmodulemodule rom(addr,data);//数据存储器模块input[4:0] addr;output[7:0] data;function[6:0] romout;//定义函数,存储32个波形取样点地址的数据input[4:0] addr;reg[4:0] addr;wire[7:0] data;case(addr)//根据不同地址,得到不同数据。
基于VerilogHDL的多功能信号发生器

基于Verilog HDL的多功能信号发生器1、引言信号发生器是一种能够产生大量标准信号和用户定义信号,并保证高精度、高稳定性、可重复性和易操作性的电子仪器。
传的信号发生器多采用模拟分立元件实现,尺寸大、灵活性差、电路结构复杂、设计周期长、调试繁琐。
随着大规模集成电路技术和EDA技术的迅速发展,使得数字系统的硬件设计如同软件设计那样方便快捷,而V erilog HDL 是当前应用最广泛的并成为IEEE标准的一种硬件描述语言。
V erilog HDL是在C语言的基础上演化而来,具有结构清晰、文法简明、功能强大、高速模拟和多库支持等优点。
为此本文通过使用V erilog HDL硬件描述语言设计了一波形可选、频率幅度可调的多功能信号发生器,电路结构简单,易于扩展重构,具有很大的灵活性。
2、多功能信号发生器的设计根据设计要求,该系统的原理框图如图1所示,由div分频器,cnt64计数器,data_rom 只读存储器组成。
⑴div是分频器,对外部提供的主频率时钟信号clk_in进行分频,以得到满足多功能信号发生器设计要求的时钟频率,clk_in是外部的主频率输入端,clr是清零控制端,step是步长控制端,当step输入上跳变信号时,可改变分频器的分频比,分频结果由clk_out端输出。
module div(clk_in,step,clr,clk_out);input clk_in,step,clr;output clk_out;reg clk_out;reg [10:0] stepnum;reg [24:0] cnter;always @(posedge step or negedge clr)beginif(~clr)stepnum=1;else if(stepnum<1000) stepnum=stepnum+1;else stepnum=0;endalways @(posedge clk_in)beginif (cnter<stepnum) cnter=cnter+1;else cnter=0;if (cnter==0) clk_out=1;else clk_out=0;endendmodule⑵cnt64是参数可设置的64进制计数器,用于产生data_rom的8位地址,clk时钟输入端,连接分频器的clk_out输出,clr清零输入端,wavesel波形选择输入端,通过输入上跳变信号,分别可循环选择正弦波、锯齿波、方波、三角波。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《基于Verilog HDL语言的多功能波形发生器设计》第1页共22页基于Verilog HDL语言的多功能波形发生器设计学生姓名:指导老师:摘要:本文主要探索了应用EDA灵活可重复编程和方便在系统重构的特性,以Verilog HDL为设计语言,将硬件功能以软件设计来描述,提高了产品的集成度,缩短开发周期。
所设计的波形发生器可产生正弦波(sina_wave)、锯齿波(swat_wave)、矩形波(squr_wave)、三角波(trig_wave)四种信号,能够实现信号的转换并且频率可调;设计的频率计以1Hz为基准信号,测量的范围是1Hz—9999Hz,测量的结果以四位十进制的形式输出。
能实现任意波形的输出并且能够测量外来信号的频率,这也是本文的设计思路。
关键词: DDS;;Verilog HDL;EDA;Max+PlusⅡ;波形发生器Abstract:This article explores the application of EDA to facilitate flexible and reprogrammable and reconstruction in the system features to Verilog HDL design language, the hardware functions to software design to describe and improve product integration, shorten the development cycle. Waveform generator designed to produce sine wave (sina_wave), ramp (swat_wave), rectangular wave (squr_wave), triangular wave (trig_wave) four signals, to achieve signal conversion and frequency adjustable; designed to 1Hz frequency counter For the reference signal, measured in the range 1Hz-9999Hz, the measurement results in the form of four decimal output. which is the design idea of this article .Key words: DDS; Verilog HDL;EDA; Max+PlusⅡ; a rbitrary waveform generator目录1 引言 (1)2 课题背景及相关技术 (1)3 理论基础 (2)3.1 Verilog HDL语言概述 (2)3.2 Max+plusII简介 (4)4 EDA多功能波形发生器详细设计 (6)4.1设计思路 (6)4.2任意波形发生器的分块设计 (6)5 任意波形发生器的仿真与实现 (8)5.1指针控制模块的仿真与实现 (8)5.2数字频率计的仿真与实现 (9)5.3系统设计有待提高和改进的地方 (12)6 小结 (13)参考文献 (14)附录 (15)1 引言随着数字电子技术迅猛发展,信号源作为常用的电子产品设计工具,其应满足精度高、速度快、分辨率高等要求。
DDS是从20世纪70年代发展起来继直接频率合成和间接频率合成之后的第三代频率合成技术。
Verilog HDL是一种允许设计者进行各种级别的逻辑设计,进行数字逻辑系统的仿真验证、时序分析、逻辑综合的硬件描述语言。
并采用MAX+PlusⅡ软件进行画图,编译,仿真。
2 课程设计背景及相关技术随着数字电子技术迅猛发展,信号源作为常用的电子产品设计工具,其应满足精度高、速度快、分辨率高等要求。
DDS是从20世纪70年代发展起来继直接频率合成和间接频率合成之后的第三代频率合成技术。
Verilog HDL是一种允许设计者进行各种级别的逻辑设计,进行数字逻辑系统的仿真验证、时序分析、逻辑综合的硬件描述语言。
Quartus Ⅱ6. 0是Altera公司推出的CPLD /FPGA结构化ASIC开发设计软件。
信号发生器(signal generator),又称信号源或振荡器,是一种能在模拟域或数字域中以一定频率产生可复现的精确校准信号的电子测试仪器。
根据输出信号波形的不同,信号发生器可以分为:函数信号发生器(正弦信号发生器、矩形信号发生器、三角波信号发生器等)、脉冲信号发生器、随机信号发生器及任意波形发生器等。
任意波形发生器(Arbitrary Waveform Generator, AWG),是信号发生器的一种,是能够精确产生用户定义的任意波形的电子测试设备。
不同于仅能产生有限简单波形的函数发生器,用户可以对任意波形发生器定义各种不同的复杂可变的波形信号。
根据结构形式,任意波形发生器主要有两种:* 独立控制式任意波形发生器* 总线控制式任意波形发生器任意波形发生器的关键技术是频率合成技术,目前常用任意波形发生器的频率合成技术主要有DDS技术和可变时钟技术。
早期的任意波形发生器仅能输出低频信号,随着数字技术的发展,其输出频率已能达到射频范围。
PLD(Programmable Logic Device)是可编程逻辑器件的总称,PLD基本上可以完成任何数字器件的功能,从高性能CPI到简单集成电路,均可以用PLD实现。
通过传统的原理图输入,或是硬件语言的描述就可以自由地设计具备某种功能的数字系统:利用软件仿真功能,可以检验设计的正确性;利用PLD的在线修改能力,可以在不必改动硬件电路的基础上进行修改设计。
具备设计时间短,PCB面积小,系统的可靠性强等特点。
目前,在通信、自动控制、信息处理等诸多领域发挥着重要的作用。
3 理论基础3.1 Verilog HDL语言概述电子设计自动化(EDA)的关键技术之一是要求用形式化方法来描述数字系统的硬件电路。
Verilog HDL 硬件描述语言在电子设计自动化中扮演着重要的角色,他是EDA 技术研究的重点之一。
Verilog HDL是一种硬件描述语言(HDL:Hardware Discription Language),是一种以文本形式来描述数字系统硬件的结构和行为的语言。
Verilog HDL就是在用途最广泛的C语言的基础上发展起来的一种件描述语言,它是由GDA(Gateway Design Automation)公司的PhilMoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。
1985年Moorby推出它的第三个商用仿真器Verilog-XL,获得了巨大的成功,从而使得Verilog HDL迅速得到推广应用。
1989年CADENCE公司收购了GDA公司,使得VerilogHDL成为了该公司的独家专利。
1990年CADENCE公司公开发表了Verilog HDL,并成立LVI组织以促进Verilog HDL成为IEEE 标准,即IEEE Standard 1364-1995。
用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。
Verilog HDL的最大特点就是易学易用,如果有C语言的编程经验,可以在一个较短的时间内很快的学习和掌握,因而可以把Verilog HDL内容安排在与ASIC设计等相关课程内部进行讲授,由于HDL语言本身是专门面向硬件与系统设计的,这样的安排可以使学习者同时获得设计实际电路的经验。
与之相比,VHDL的学习要困难一些。
但Verilog HDL较自由的语法,也容易造成初学者犯一些错误,这一点要注意。
下面列出的是Verilog 硬件描述语言的主要能力:(1)基本逻辑门,例如and 、or 和nand 等都内置在语言中。
(2)用户定义原语(UDP )创建的灵活性。
用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。
(3)开关级基本结构模型,例如pmos 和nmos 等也被内置在语言中。
检查。
(5)可采用三种不同方式或混合方式对设计建模。
这些方式包括:行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模。
* Verilog HDL 中有两类数据类型:线网数据类型和寄存器数据类型。
线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。
* 能够描述层次设计,可使用模块实例结构描述任何层次。
* 设计的规模可以是任意的;语言不对设计的规模(大小)施加任何限制。
* Verilog HDL 不再是某些公司的专有语言而是IEEE 标准。
* 人和机器都可阅读Verilog 语言,因此它可作为EDA 的工具和设计者之间的交互语言。
* Verilog HDL 语言的描述能力能够通过使用编程语言接口(PLI )机制进一步扩展。
PLI 是允许外部函数访问Verilog 模块内信息、允许设计者与模拟器交互的例程集合。
* 设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级(RTL )到算法级,包括进程和队列级。
* 能够使用内置开关级原语在开关级对设计完整建模。
* 同一语言可用于生成模拟激励和指定测试的验证约束条件,例如输入值的指定。
* Verilog HDL 能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。
这些值也能够用于与期望值比较,在不匹配的情况下,打印报告消息。
* 在行为级描述中,Verilog HDL 不仅能够在RTL 级上进行设计描述,而且能够在体系结构级描述及其算法级行为上进行设计描述。
* 能够使用门和模块实例化语句在结构级进行结构描述。
* Verilog HDL 的混合方式建模能力,即在一个设计中每个模块均可以在不同设计层次上建模。
* Verilog HDL 还具有内置逻辑函数,例如& (按位与)和| (按位或)。
* 对高级编程语言结构,例如条件语句、情况语句和循环语句,语言中都可以使用。
* 可以显式地对并发和定时进行建模。
* 提供强有力的文件读写能力。
* 语言在特定情况下是非确定性的,即在不同的模拟器上模型可以产生不同的结果;例如,事件队列上的事件顺序在标准中没有定义。
3.2 Max+plusII简介Max+plusII(或写成Maxplus2或MP2) 是Altera公司推出的的第三代PLD开发系统(Altera第四代PLD开发系统被称为:Quartus,主要用于设计6万-100万门的大规模CPLD/FPGA)。
使用MaX+PLUSII的设计者不需精通器件内部的复杂结构。