VHDL与Verilog HDL的对比以及三中建模方式
VerilogHDL和VHDL的区别

VerilogHDL和VHDL的区别VHDL和Verilog HDL 的区别低层次建模VHDL和Verilog HDL都可以描述硬件,然后,在低层次硬件描述上VERILOG HDL好于VHDL。
这是因为Verilog HDL最初就是⽤来创建和仿真逻辑门电路的。
实际上,Verilog HDL有内置的门或者是低层次的逻辑门,因此,设计者能够⽤Verilog代码实例门电路⽽在VHDL中不可以。
Verilog的门级元件有:and, nand, or, nor, xor, xnor, buf, not, bufif0, notif0, bufif1, notif1, pullup, pulldown.Verilog的开关级元件有:pmos, nmos, rpmos, rnmos, cmos, rcmos, tran, rtran, tranif0, rtranif0, tranif1, rtranif1.更加重要的是,Verilog⽀持⽤户⾃定义元件,因此,设计者可以定义他们⾃⼰的单元元件。
这个特点对于ASIC的设计者来说是必须和受欢迎的。
VHDL同样有⼀些低层次的嵌⼊式的逻辑门,如NOT, AND, NAND, OR, NOR, XOR, XNOR.举例如下:or u1(x,y,z); (in Verilog) <=> x <= y OR z; in VHDLand u2(i1,i2,i3); (in Verilog) <=> i3 <= i2 AND i3; in VHDL⾼层次建模另⼀⽅⾯,在⾼层次硬件建模⽅⾯,VHDL⽐Verilog HDL要强。
VHDL⽐Verilog HDL提供了更多的特点和构造结构,这些使得VHDL更适合⾼层次建模。
在⽐较VHDL和Verilog后,以下⼏个主要不同的特点来⽀撑⾼层次建模。
1、在VHDL中,⽤户⾃定义数据类型Verilog有⾮常简单的数据类型,这些数据类型全部由Verilog语⾔⾃⼰定义(⽤户不能⾃⼰定义数据类型)。
verilog和VHDL混合编译仿真

verilog和VHDL混合编译仿真在实际项⽬中,由于项⽬经历了较多的版本更迭或者设计⼈员的技术⽔平限制,有些时候难免有使⽤到verilog的代码和VHDL代码共同存在⼀个项⽬中的情况,那这个时候我们要怎样进⾏混合编译仿真验证呢?这⾥以使⽤vcs⼯具编译verdi查看波形为例:如果我们设计代码是vhdl版本的,但是还想使⽤更⾼级的代码verilog或者systemverilog作为它的顶层tb,并且还想使⽤uvm的组件来搭建更⽅便的验证环境,那么整个环境的编译和执⾏过程如下:1.需要准备的软件vcs-mx和verdi,其中vcs-mx版本会有vlogan和vhdlan两个编译程序2.开始编译编译vhdl的代码,dut_src.f是vhdl的⽂件列表:vhdlan -nc dut_src.f -l cmp_vhdl.log编译uvm库的sv代码:vlogan -full64 -timescale=1ns/1ps +v2k -sverilog -ntb_opts uvm -l cmp_uvm.log编译我们⾃⼰设计的sv代码和⾃⼰设计的uvm各个组件部分的代码,tb.f是⽂件列表:vlogan -full64 -timescale=1ns/1ps +v2k -sverilog tb.f -ntb_opts uvm -l cmp_verilog.log编译vhdl和verilog各⾃的库⽣成可执⾏⽂件simv:vcs -timescale=1ns/1ps -ntb_opts uvm -top tb_top -debug_access+pp -fsdb -j56 -cm line+fsm+tgl+cond -lint=TFIPC-L +nbaopt +rad +notimingchecks +nospecify +error+30run起来,⽣成波形,其中TC_NAME是传⼊的tc参数:./simv -cm line+fsm+tgl+cond +fsdb+force +fsdbfile+../wave/tb_top.fsdb +UVM_TESTNAME=$(TC_NAME)3.查看波形编译出verdi可以查看的库,使⽤vhdlcom是编译vhdl⽂件的库,vericom是编译verilog⽂件的库vhdlcom -lib my_work dut_src.fvericom -lib my_work -sv tb_top.sv使⽤verdi打开波形⽂件:verdi -lib my_work -top tb_top -ssf tb_top.fsdb。
四位全加器的VHDL与VerilogHDL实现

entity pro1is
port(A1,B1,G1BAR,A0,B0,G0BAR:instd_logic;
or(cout,m1,m2,m3);
ﻩendmodule
ﻩ/*module add(co,s,a,b,ci);//数据流法
ﻩoutput[3:0] s;
ﻩoutput co;
ﻩinput[3:0] a,b;
ﻩinput ci;
ﻩassign {co,s}=a+b+ci;
ﻩendmodule*/
libraryIEEE;
endmodule
module full_add1(a,b,cin,sum,cout);
ﻩinput a,b,cin;
ﻩoutput sum,cout;
ﻩwire s1,m1,m2,m3;
and(m1,a,b),
(m2,b,cin),
ﻩ(m3,a,cin);
xor(s1,a,b),
ﻩ(sum,s1,cin);
四位全加器的VHDL与VerilogHDL实现
———————————————————————————————— 作者:
———————————————————————————————— 日期:
四位全加器的VHDL/VerilogHDL实现
加法器的分类
(一)半加器
能对两个1位二进制数进行相加而求得和及进位的逻辑电路称为半加器。或:只考虑两个一位二进制数的相加,而不考虑来自低位进位数的运算电路,称为半加器。图1为半加器的方框图。图2为半加器原理图。其中:A、B分别为被加数与加数,作为电路的输入端;S为两数相加产生的本位和,它和两数相加产生的向高位的进位C一起作为电路的输出。
vhdl转verilog hdl的规则

vhdl转verilog hdl的规则VHDL转Verilog HDL的规则引言:VHDL(VHSIC Hardware Description Language)和Verilog HDL 都是硬件描述语言,用于描述数字电路的功能和结构。
在实际的工程中,经常会遇到需要将VHDL代码转换为Verilog HDL的情况。
这篇文章将介绍VHDL转Verilog HDL的规则,以帮助读者成功完成转换过程。
一、了解VHDL和Verilog HDL的语法差异在进行VHDL转Verilog HDL之前,我们需要了解这两种语言的语法差异。
以下是一些常见差异的例子:1. 信号声明:- VHDL: signal a, b, c: std_logic;- Verilog HDL: reg a, b, c;2. 过程和行为描述- VHDL: process (a, b) is begin ... end process;- Verilog HDL: always @(a or b) begin ... end3. 选择结构- VHDL: case (a) is when "00" => ... end case;- Verilog HDL: case (a) "00": ... endcase;二、代码整理准备在进行VHDL转Verilog HDL之前,我们需要对VHDL代码进行整理和准备。
以下是一些常见的准备步骤:1. 删除VHDL中不支持的语法Verilog HDL不支持VHDL中的某些特性,如非标准包等。
在转换过程中,我们应该删除这些不支持的语法。
2. 替换数据类型VHDL中的数据类型和Verilog HDL有所不同,我们需要逐一替换VHDL数据类型为对应的Verilog HDL数据类型。
3. 检查命名规范VHDL和Verilog HDL在命名规范上有所不同。
在进行转换之前,我们需要检查VHDL代码中的命名规范是否符合Verilog HDL的要求,并进行相应的修改。
VHDL 和 Verilog HDL 的区别

VHDL 和Verilog HDL 的区别1. VHDL语言的特点:a.VHDL是强类型语言:不同数据类型之间不能赋值(可用转换函数实现赋值)不同数据类型之间不能运算(可调用程序包重载操作符)b.VHDL不区分大小写(连保留字也不区分大小写)Verilog HDL则没有数据类型匹配要求(自动转换),区分大小写(大小写含义不同)2. 输入、输出端口:VHDL中有in out inout buffer四种,端口默认为内部信号(有寄存器端口)buffer端可以反馈,但不能连接其他元件端口,实际使用时常用内部signal来代替buffer端口Verilog HDL中只有input output inout,默认为wire类型(无寄存器端口)verilog HDL中的reg类型数据可以代替VHDL的内部signal(内部寄存器)VHDL 与Verilog HDL 硬件设计语言的较量!当前最流行的硬件设计语言有两种,即VHDL 与Verilog HDL,两者各有优劣,也各有相当多的拥护者。
VHDL 语言由美国军方所推出,最早通过国际电机工程师学会(IEEE)的标准,在北美及欧洲应用非常普遍。
而Verilog HDL 语言则由Gateway 公司提出,这家公司辗转被美商益华科技(Cadence)所购并,并得到美商新思科技(Synopsys)的支持。
在得到这两大EDA 公司的支持后,也随后通过了IEEE 标准,在美国、日本及中国台湾地区使用非常普遍。
两者的比较如下:(1)数据类型:VHDL 允许使用者自定义数据类型,如抽象数据类型,这种特性使得系统层级的建模较为容易。
相比于VHDL,Verilog HDL 语言的主要数据类型就简单许多,其数据类型的定义完全是从硬件的概念出发。
对于初学者来说,这可能是其优点,能将思维概念放在电路设计本身。
不过,这也使得Verilog HDL 在系统级建模的能力较弱,但新一代的Verilog HDL 语言,如Verilog-2001 及SystemVerilog 等,就针对系统级的部分进行了加强,且完全向下兼容。
VHDL与Verilog语言

VHDL与Verilog语言VHDL(VHSIC hardware description language)和Verilog是用于电子系统设计的硬件描述语言(HDL)。
这两种语言被广泛应用于数字逻辑设计和仿真,以及硬件描述、验证和综合。
1. VHDL(VHSIC hardware description language)VHDL是一种结构化的硬件描述语言,最初由美国国防部高速集成电路计划办公室(VHSIC,Very High Speed Integrated Circuits)开发。
VHDL以其强大的功能和灵活性而闻名,并被广泛用于数字系统的设计和验证。
VHDL的编写包括实体(Entity)和体(Architecture)两个主要部分。
实体部分描述了数字系统的输入输出接口、信号和组件的声明,而体部分描述了实体的内部结构、信号处理和逻辑功能。
VHDL具有丰富的数据类型、运算符和控制结构,可以方便地描述数字电路的行为和结构。
它还提供了强大的仿真和验证功能,使设计人员能够在开发和测试阶段快速迭代和调试设计。
2. VerilogVerilog是一种硬件描述语言,最初由Gateway Design Automation公司(现在是Cadence Design Systems的一部分)开发。
Verilog以其简洁的语法和易学易用的特性而受到广泛欢迎,并成为工业界标准。
Verilog的设计由模块(Module)组成,每个模块描述了一个黑盒子,包含输入和输出端口以及内部的逻辑功能。
模块可以进行层次化组合,从而实现较复杂的系统级设计。
Verilog的语法类似于C语言,具有类似的数据类型、运算符和控制结构。
它还提供了时序建模的能力,使设计人员能够描述数字电路的时序行为。
3. VHDL与Verilog的比较VHDL和Verilog在语法和功能上有一些区别,但它们都可以用于数字电路的设计和仿真。
以下是它们之间的一些比较:3.1 语法风格VHDL采用结构化的编程风格,需要明确的体、过程和信号声明,可以更好地控制和描述系统的结构和行为。
选择VHDL还是Verilog

选择VHDL还是Verilog?有很多的初学者对选择哪一门语言进行学习总是很迷惑,本文将剖析这两种语言的优势和不足,好给大家一个参考。
技术上:VHDL语法严谨、规范,结构性好,适用于较高抽象层次的描述,但比较复杂。
Verilog简单易用,语法具有亲和力,可描述底层晶体管,但先天上的语法不够严谨的特点也让其在很多领域的发展受限制。
地域上:VHDL在欧洲用的比较多,Verilog在美洲用的比较多。
在中国国内,由于VHDL推广较早,所以应用广泛,尤其在研究所和高校中,但近几年,Verilog也受到了很多企业的青睐。
应用上:在许多大型的需要更多行为级描述的场合,VHDL比较适用,在需要底层描述的地方,用Verilog比较合适。
综合还说,VHDL和Verilog两种语言以及其衍生的工具在全球EDA市场上的占有率,难分伯仲。
就个人而言,选择那种语言在很大程度上并不随意而定的,而是要结合实际的工作环境、手边的工具、资料以及以往的设计和周边人群而定。
我们建议在学习这两种语言时,要精通一种,而另一种达到了解就可以,这是一种比较好的选择。
这两天在更新教程的时候想到的:很多初学者在学习初期,经常为是学习VHDL还是学习Verilog间纠结。
其实,与其纠结,还不如静下心,抓紧时间,就某种语言好好学习。
我以前也纠结过,在那段时间里不断的咨询别人学那个好,一上网就查哪个更受欢迎,就怕学了个偏门的,白费力气白学一场…..但现在回过头来看看,觉的当初真没有必要。
既然这两种语言在市场上存在了这么久,那就说明它们是适应市场需要的,既然谁都没有灭掉谁,那说明两者语言各个利弊。
而且学会了一种后,另外一种也能很快学会,我觉的这可能是因为这两种语言最终的目的都是在逻辑器件上形成硬件电路,所以语言中也贯穿这可编程逻辑器件的一些本质的东西(e.g.并行处理)。
所以,学好了某种语言,掌握了这些本质,然后再去学另一种语言,也就有点似曾相识,融会贯通的感觉了。
Verilog-HDL基础知识

Verilog-HDL基础知识第⼆章 Verilog-HDL基础知识1.Verilog-HDL概述1.1 什么是硬件描述语⾔(HDL)HDL:Hardware Description Language硬件描述语⾔HDL是⼀种⽤形式化⽅法描述数字电路和系统的语⾔,可以描述硬件电路的功能、信号连接关系和定时关系。
1.2 使⽤HDL的优点电路的逻辑功能容易理解;便于计算机对逻辑进⾏分析处理;把逻辑设计与具体电路的实现分成两个独⽴的阶段来操作;逻辑设计与实现的⼯艺⽆关;逻辑设计的资源积累可以重复利⽤;可以由多⼈共同更好更快地设计⾮常复杂的逻辑电路(⼏⼗万门以上的逻辑系统)。
1.3 Top_Down设计思想1.4 Verilog-HDL简介1.4.1 Verilog HDL的发展1.4.2 Verilog-HDL与VHDL的⽐较☆ VHDL-VHSIC Hardware Description Language。
VHDL于 1987年成为IEEE标准。
☆ Verilog-HDL简单易学,语法⽐较灵活。
VHDL语法严谨,需要较长的时间学会。
☆ Verilog-HDL在系统抽象⽅⾯⽐VHDL略差,但在门级开关电路描述⽅⾯⽐VHDL强。
1.4.3 Verilog-HDL 的应⽤ASIC和FPGA设计师可⽤它来编写可综合的代码。
描述系统的结构,做⾼层次的仿真。
验证⼯程师编写各种层次的测试模块对具体电路设计⼯程师所设计的模块进⾏全⾯细致的验证。
库模型的设计:可以⽤于描述ASIC 和FPGA的基本单元(Cell)部件,也可以描述复杂的宏单元(Macro Cell)。
1.4.4 Verilog-HDL的抽象级别⽤Verilog-HDL描述的电路设计就是该电路的Verilog HDL模型,这些模型可以是实际电路的不同级别的抽象,这些抽象的级别和它们对应的模型类型共有以下五种:?系统级(system): ⽤⾼级语⾔结构实现设计模块的外部性能的模型。
硬件描述语言Verilog HDL

6.2 Verilog HDL 入门 6.2.1 Verilog HDL 的基本结构 6.2.2 简单 Verilog HDL 实例
9
6.2.1 Verilog HDL的基本结构
Verilog 使用大约100个预定义的关键词定义该语言的结构 1. VerilogHDL 程序由模块构成。每个模块的内容都是嵌在关键词module和 endmodule两个语句之间。每个模块实现特定的功能。 2. 每个模块先要进行端口的定义,并说明输入(input) 、输出(output)和 双向(inout),然后对模块功能进行描述。 3. 除了endmodule语句外,每个语句后必须有分号。 4. 可以用/* --- */和//…..,对VerilogHDL程序的任何部分做注释。
例 2选1数据选择器的程序实例
a
0 out
b
1
sel
13
module mux2_1(out, a, b, sel) ;
output out;
数
input a, b; input sel;
assign out= sel ? b : a;
据 流 描 述
endmodule
module mux2_1(out, a, b, sel) ;
VHDL 和Verilog 的功能较强,属于行为(功能)描述语言。两种HDL均为IEEE标准。 特别是Verilog HDL的语法来源于C语言,它较 VHDL 好用好学。
7
6.1 概 述 6.2 Verilog HDL入门 6.3 Verilog HDL基本语法规则 6.4 Verilog HDL结构级建模 6.5 Verilog HDL数据流建模 6.6 Verilog HDL行为级建模 6.7 数字钟电路设计
vhdl转verilog hdl的规则

vhdl转verilog hdl的规则(原创版)目录1.VHDL 和 Verilog HDL 的概述2.VHDL 转 Verilog HDL 的必要性3.转换规则和方法4.实例分析5.总结正文一、VHDL 和 Verilog HDL 的概述VHDL(VHSIC 硬件描述语言)和 Verilog HDL(硬件描述语言)是两种常用的硬件描述语言,它们分别用于描述数字电路和模拟混合信号电路。
VHDL 起源于美国国防部,主要用于大型数字集成电路的设计,而 Verilog HDL 起源于 1983 年,是一种更为简洁、易学的硬件描述语言。
二、VHDL 转 Verilog HDL 的必要性由于 Verilog HDL 具有易学、简洁等优势,越来越多的工程师开始使用 Verilog HDL 进行电路设计。
因此,将已有的 VHDL 代码转换为Verilog HDL 代码,可以提高设计效率,降低设计难度,同时也有助于后续的电路优化和修改。
三、转换规则和方法VHDL 转 Verilog HDL 的过程主要分为以下几个步骤:1.语法转换:将 VHDL 的语法转换为 Verilog HDL 的语法。
例如,将 VHDL 的实体声明转换为 Verilog HDL 的模块声明,将 VHDL 的端口声明转换为 Verilog HDL 的输入输出声明等。
2.结构转换:将 VHDL 的电路结构转换为 Verilog HDL 的电路结构。
例如,将 VHDL 的 IF-THEN-ELSE 结构转换为 Verilog HDL 的 IF-THEN 结构,将 VHDL 的 CASE 结构转换为 Verilog HDL 的 CASE 语句等。
3.类型转换:将 VHDL 的数据类型转换为 Verilog HDL 的数据类型。
例如,将 VHDL 的 STD_LOGIC 转换为 Verilog HDL 的 wire 类型,将VHDL 的 STD_LOGIC_VECTOR 转换为 Verilog HDL 的 reg 类型等。
VHDL和 verilogHDL的区别

4.布局布线:将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放到PLD/FPGA内
5.时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。(也叫后仿真)
选择VHDL还是verilog HDL?
这是一个初学者最常见的问题。其实两种语言的差别并不大,他们的描述能力也是类似的。掌握其中一种语言以后,可以通过短期的学习,较快的学会另一种语言。选择何种语言主要还是看周围人群的使用习惯,这样可以方便日后的学习交流。当然,如果您是集成电路(ASIC)设计人员,则必须首先掌握verilog,因为在IC设计领域,90%以上的公司都是采用verilog进行IC设计。对于PLD/FPGA设计者而言,两种语言可以自由选择。
2. 用硬件电路设计思想来编写HDL:
学好HDL的关键是充分理解HDL语句和硬件电路的关系。编写HDL,就是在描述一个电路,我们写完一段程序以后,应当对生成的电路有一些大体上的了解,而不能用纯软件的设计思路来编写硬件描述语言。要做到这一点,需要我们多实践,多思考,多总结。
3.语法掌握贵在精,不在多
另外,学习过Verilog HDL的朋友应该知道,Verilog HDL很具有C语言的风格,不能说“所以”,但结果差不多,也具有C语言一样的不严密性。所以在硬件电路设计时就得有相应的考虑
Hale Waihona Puke 以上是我去年学数逻在网上查到的 希望对你有所帮助
�
HDL开发流程
用VHDL/VerilogHD语言开发PLD/FPGA的完整流程为:
VHDL和VERILOG的比较-很好

采用构造设计: 预先设计模块: 8选1MUX:MUX8 控制输入a[2..0]
数据输入d[7..0] 数据输出y 模8二进制计数器:COUNTER3
时钟输入 clk 状态输出q[2..0] 设计要求: 按照时钟节拍,由y端口循环顺序输出 “11110101”序列信号
VHDL 与 Verilog HDL 旳对比
7.顺序语句 :条件语句 例:case(data)
2'b00:decod=4'b0001; 2'b01:decod=4'b0010; 2'b10:decod=4'b0100; 2'b11:decod=4'b1000; default:decod=4'b0000; endcase
VHDL 与 Verilog HDL 旳对比
7. 顺序语句 :循环语句 VHDL中有3种形式旳循环语句: for loop ; 有限循环 while loop; 条件循环 loop (next,exit); 无条件循环
VHDL 与 Verilog HDL 旳对比
7. 顺序语句 :循环语句 Verilog HDL 中有4种形式: for (初值,终止值,增量) 有限循环; repeat (循环次数体现式) 有限循环; while (循环条件体现式) 条件循环; forever 无条件循环,产生周期信号;
VHDL 与 Verilog HDL 旳对比 9. 简朴模块旳对比: 8位加法器
VHDL 与 Verilog HDL 旳对比 9. 简朴模块旳对比: 8位二进制加法计数器
VHDL 与 Verilog HDL 旳对比 9. 简朴模块旳对比: 8位二进制加法计数器
VHDL和Verilog HDL有什么不同解析

硬件描述语言(HDL,Hardware Description Language)是一种用形式化方法来描述数字电路和系统的语言。
数字系统的设计者利用这种语言可以从上层到下层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。
然后利用EDA(Electronic Design Automatic,电子设自动化)工具逐层次进行仿真验证,再把其中需要变为具体物理电路的模块组合由自动综合工具转换到门级电路网表。
接下去,再用专用集成电路(ASIC)或FPGA自动布局布线工具把网表转换为具体电路布线结构的实现。
VHDL全名Very-High-Speed Integrated Circuit HardwareDescription Language 目前,被广泛使用的硬件描述语言有VHDL和Verilog HDL两种。
前者是由美国军方组织开发的,于1987年成为IEEE标准;后者是从一个普通的民间公司的私有财产转化而来的,早在1983年就已推出,于1995年才正式成为IEEE标准。
Verilog HDL和VHDL作为描述硬件电路设计的语言,其共同特点在于:能形式化地抽象表示电路的行为和结构;支持逻辑设计中层次与范围的描述;可借用高级语言的精巧结构来简化电路行为的描述;具有电路仿真与验证机制以保证设计的正确性;支持电路描述由高层到低层的综合转换;硬件描述与实现工艺无关(有关工艺参数可通过语言提供的属性包括进去);便于文档管理;易于理解和设计重用。
但是,两者又有着各自的特点:(1)语法特点 Verilog HDL和VHDL最大的差别在语法上,Verilog HDL是一种类C语言,而VHDL是一种ADA(Action Data Automation,行动数据自动化)语言。
由于C语言简单易用且应用广泛,因此也使得Verilog HDL语言容易学习,如果有C语言学习的基础,很快就能够掌握;相比之下,VHDL语句较为晦涩,使用难度较大。
Verilog硬件描述语言Verilog HDL设计方法概述

建 模 能 力 的 比 较
1.4 Verilog HDL目前的应用情况 和适用的设计
在美国,在高层逻辑电路设计领域Verilog HDL和 VHDL的应用比率是60%和40%,在其它地区各为 50%。Verilog HDL是专门为复杂数字逻辑电路和 系统的设计仿真而开发的,本身就非常适合复杂 数字逻辑电路和系统的仿真和综合。由于Verilog HDL在其门级描述的底层,也就是在晶体管开关的 描述方面比VHDL有强得多得功能,所以即使是 VHDL的设计环境,在底层实质上也是由Verilog HDL描述的器件库所支持的。
近年来,FPGA和ASIC的设计在规模和复杂度 方面不断取得进展,而对逻辑电路及系统的设 计的时间要求却越来越短。这些因素促使设计 人员采用高水准的设计工具,如:硬件描述语 言(Verilog HDL或VHDL)来进行设计。
1.5.2. Verilog HDL设计法与传统的电路 设计法与传统的电路 原理图输入法的比较
采用电路原理图输入法进行设计,具有设计 的周期长,需要专门的设计工具,需手工布线等 缺陷。 而采用Verilog HDL设计时具有以下优点: 1、设计者可以在非常抽象的层次上对线路进 行描述而不必选择特定的制造工艺。逻辑综合工 具可以将设计自动转换成任意一种制造工艺版图。 如果出现新的制造工艺,设计者不必对电路进行 重新设计,只要将RTL级描述输入综合工具,即可 生成针对新工艺的门级网表。(工艺无关性)。
硬核(Hard Core) 在某一种专用半导体集成电路 工艺的(ASIC)器件上实现的经验证是正确的 总门数在5000门以上的电路结构掩膜,称之为 “硬核”。 为了逻辑电路设计成果的积累,和更快更好地 设计更大规模的电路,发展软核的设计和推广 软核的重用技术是非常有必要的。新一代的数 字逻辑电路设计师必须掌握这方面的知识和技 术。
Verilog HDL和VHDL的比较

Verilog HDL和VHDL的比较这两种语言都是用于数字电子系统设计的硬件描述语言,而且都已经是IEEE 的标准。
VHDL 1987 年成为标准,而Verilog 是1995 年才成为标准的。
这个是因为VHDL 是美国军方组织开发的,而Verilog 是一个公司的私有财产转化而来的。
为什么Verilog 能成为IEEE 标准呢?它一定有其优越性才行,所以说Verilog 有更强的生命力。
这两者有其共同的特点:1. 能形式化地抽象表示电路的行为和结构;2. 支持逻辑设计中层次与范围地描述;3. 可借用高级语言地精巧结构来简化电路行为和结构;具有电路仿真与验证机制以保证设计的正确性;4. 支持电路描述由高层到低层的综合转换;5. 硬件描述和实现工艺无关;6. 便于文档管理;7. 易于理解和设计重用但是两者也各有特点。
Verilog HDL 推出已经有20 年了,拥有广泛的设计群体,成熟的资源也比VHDL 丰富。
Verilog 更大的一个优势是:它非常容易掌握,只要有 C 语言的编程基础,通过比较短的时间,经过一些实际的操作,可以在 2 ~3 个月内掌握这种设计技术。
而VHDL 设计相对要难一点,这个是因为VHDL 不是很直观,需要有Ada 编程基础,一般认为至少要半年以上的专业培训才能掌握。
目前版本的Verilog HDL 和VHDL 在行为级抽象建模的覆盖面范围方面有所不同。
一般认为Verilog 在系统级抽象方面要比VHDL 略差一些,而在门级开关电路描述方面要强的多。
近10 年来,EDA 界一直在对数字逻辑设计中究竟用哪一种硬件描述语言争论不休,目前在美国,高层次数字系统设计领域中,应用Verilog 和VHDL 的比率是80 %和20 %;日本和台湾和美国差不多;而在欧洲VHDL 发展的比较好。
在中国很多集成电路设计公司都采用Verilog ,但VHDL 也有一定的市场。
1、最近和朋友談到這個問題, 他們選的是Verilog 原因是, IP 供應商大多提供Verilog, 如果你的Project 是由頭做到尾都自己來, 不用別人的IP 那麼, 我想問題不大, 但如果你未來會開ASIC 需要整合IP 供應商的IP 那麼建議你用Verilog!2、以前的一个说法是:在国外学界VHDL比较流行,在产业界Verilog比较流行。
verilog建模方式

verilog HDL建模方式简单的归纳为三类:结构化描述方式、数据流描述方式、行为描述方式。
一个模块中往往是将三种建模方式混合起来使用,来描述一个完整的功能。
系统级、算法级、RTL级属于行为级,门级、开关级属于结构级。
系统级:用高级语言实现设计模块的外部性能的模型。
算法级:用高级语言结构实现设计算法的模型。
RTL级:描述数据在寄存器之间流动和如何树立这些数据的模型门级:描述逻辑门以及逻辑门之间的连线的模型开关级:描述器件中三极管和存储节点以及他们之间连线的模型1)结构化的建模方式是通过对电路的层次和组成结构进行描述来建模,即通过对器件的调用(HDL概念称为例化),并使用线网来连接各器件来描述一个模块的结构。
这里的器件包括Verilog HDL的内置门如与门and,异或门xor等,也可以是用户自定义的一个模块,还可以是FPGA厂商的提供的一个基本逻辑单元或者宏。
结构化的描述方式反映了一个设计的层次结构。
module FA_struct (A, B, Cin, Sum, Cout);input A;input B;input Cin;output Sum;output Cout;wire S1, T1, T2, T3;// -- statements -- //xor x1 (S1, A, B);xor x2 (Sum, S1, Cin);and A1 (T1, A, B );and A2 (T2, B, Cin);and A3 (T3, A, Cin);or O1 (Cout, T1, T2, T3 );endmodule该实例显示了一个全加器由两个异或门、三个与门、一个或门构成。
S1、T1、T2、T3则是门与门之间的连线。
代码显示了用纯结构的建模方式,其中xor 、and、or 是Verilog HDL 内置的门器件。
以 xor x1 (S1, A, B) 该例化语句为例:xor 表明调用一个内置的异或门,器件名称xor ,代码实例化名x1(类似原理图输入方式)。
最流行的硬件设计语言,VHDL和Verilog比较

最流行的硬件设计语言,VHDL和Verilog比较
当前最流行的硬件设计语言有两种,即VHDL 与Verilog HDL,两者各有优劣,也各有相当多的拥护者。
VHDL 语言由美国军方所推出,最早通过国际电机工程师学会(IEEE)的标准,在北美及欧洲应用非常普遍。
而Verilog HDL 语言则由Gateway 公司提出,这家公司辗转被Cadence所购并,并得到Synopsys的支持。
在得到这两大EDA 公司的支持后,也随后通过了IEEE 标准,在美国、日本及中国台湾地区使用非常普遍。
我们把这两种语言具体比较下:
1.整体结构
点评:
两者结构基本相似,并行语句的种类也类似;
VHDL语言需要进行大量说明,程序通常比较长;
Verilog HDL通常不进行说明,或只进行非常简短的说明,程序比较简短。
2.数据对象及类型
VHDL
常量信号变量 9种预定义类型各类用户定义类型
可描述各类不同的量
必须进行类型说明
运算时必须考虑类型的一致性和适用性
Verilog HDL
常量:数量,参量
变量:网络型寄存器型
类型种类少
运算时所受的约束少
3.运算符号。
vhdl和systemverilog混合编译

VHDL和SystemVerilog混合编译1. 引言VHDL(VHSIC Hardware Description Language)和SystemVerilog是两种常用的硬件描述语言(HDL),用于设计和验证数字电路。
VHDL是较早出现的一种语言,而SystemVerilog则是在VHDL的基础上进行扩展和改进的。
在某些情况下,我们可能需要同时使用VHDL和SystemVerilog来编写和开发复杂的电路设计。
本文将介绍VHDL和SystemVerilog混合编译的相关概念、方法和技巧。
2. VHDL和SystemVerilog的特点2.1 VHDL的特点VHDL是一种面向模块化设计的语言,它支持层次化的模块组织和描述。
VHDL的语法结构较为复杂,但它提供了丰富的数据类型和操作符,使得我们能够更好地描述数字电路的行为和结构。
VHDL还支持并发执行,可以方便地描述并行的电路结构。
2.2 SystemVerilog的特点SystemVerilog是一种功能更强大的硬件描述语言,它继承了VHDL的特点,并在其基础上添加了一些新的特性。
SystemVerilog提供了更强大的数据类型和操作符,支持面向对象的编程范式,具有更好的可重用性和可维护性。
此外,SystemVerilog还提供了一些方便的验证功能,如断言(assertion)和约束(constraint)。
3. VHDL和SystemVerilog混合编译的方法3.1 使用VHDL和SystemVerilog的分层设计在进行VHDL和SystemVerilog混合编译时,我们可以根据设计的层次结构,将不同的模块用不同的语言来实现。
例如,我们可以使用VHDL来描述顶层模块和一些复杂的逻辑电路,而使用SystemVerilog来描述一些简单的模块和验证部分。
这样可以充分发挥两种语言的优势,提高开发效率。
3.2 使用VHDL和SystemVerilog的接口互联在进行VHDL和SystemVerilog混合编译时,我们需要确保不同语言的模块能够正确地进行互联。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文将以二选一多路器为例,分别用Verilog HDL 和VHDL 描述电路。
二选一多路器的门级结构:HDL 建模时,除了可以用不同层次的基本描述方式建模外,还可以根据七对信号描述方式的不同划分为三种:数据流建模,行为建模,结构化建模;在模块中对信号资源分配(或组合逻辑的连接)的描述称为数据流描述或数据流建模。
在模块中对信号的行为进行描述,称为行为描述或行为建模。
将特定功能的模块组织成更大的模块,其描述方式称为结构化描述或结构化建模。
下面是用VHDL 描述的二选一多路器,采用数据流建模方式。
library ieee;use ieee.std_logic_1164.all;entity mux_dataflow is port (a : in std_logic;b : in std_logic;sel : in std_logic; c : out std_logic);end mux_dataflow;architecture dataflow of mux_dataflow is beginA 图2 二选一多路器的门级结构(国外常用符号) VHDL 所用的库和标准 实体和端口说明,加粗的是关键字 结构体,说明建模方式,加粗是关键字端口声明和类属声明c<=(a and not sel) or (b and sel);end dataflow;●下面是用Verilog HDL描述的二选一多路器,采用数据流建模方式。
module mux_dataflow (a,b,sel,c);input a,b,sel;output c;wire c;assign c= (a & ~sel) | (b & sel);endmodule●下面是用VHDL的行为建模方式描述二选一多路器。
library ieee;use ieee.std_logic_1164.all;entity mux_behaviour isport( a : in std_logic;b : in std_logic;sel : in std_logic;c : out std_logic);end mux_behaviour;architecture behaviour of mux_behaviour isbeginmux_process: process (a,b,sel)beginc<=(a and not sel) or (b and sel);end process ;end behaviour;●下面是用Verilog HDL描述的二选一多路器,采用行为建模方式。
module mux_behaviour(a,b,sel,c);input a,b,sel;output c;reg c;always @(a,b,sel)beginc<= (a& ~sel) |(b&sel);endendmodule虽然表达式几乎相同,但是他们有本质的不同。
数据流建模方式侧重于信号怎么做。
行为建模方式侧重于信号做什么。
下面是用VHDL描述的二选一多路器,采用结构体建模方式。
library ieee;use ieee.std_logic_1164.all;entity mux_structure isport( a : in std_logic;b : in std_logic;sel : in std_logic;c : out std_logic);end mux_structure;architecture structure of mux_structure iscomponent and_gateport( a : in std_logic;b : in std_logic;c : out std_logic);end component;component or_gateport( a : in std_logic;b : in std_logic;c : out std_logic);end component;component inverterport( a : in std_logic;c : out std_logic);end component;signal x0,x1,x2 : std_logic;结构体信号声明beginu0 : inverter port map(a => sel, c => x0);u1 : and_gate port map(a => b, b => sel, c => x1);u2 : and_gate port map(a => x0, b => a, c => x2);u3 : or_gate port map(a => x1, b => x2, c => c);end structure;---------------------and_gate-----------------------library ieee;use ieee.std_logic_1164.all;entity and_gate isport( a : in std_logic;b : in std_logic;c : out std_logic);end and_gate;architecture dataflow of and_gate isbeginc<=a and b;end dataflow;----------------------or_gate------------------------library ieee;use ieee.std_logic_1164.all;entity or_gate isport( a : in std_logic;b : in std_logic;c : out std_logic);end or_gate;architecture dataflow of or_gate isbeginc<= a or b;end dataflow;----------------------inverter----------------------library ieee;use ieee.std_logic_1164.all;entity inverter isport( a : in std_logic;c : out std_logic);end inverter;architecture dataflow of inverter isbeginc<= not a;end dataflow;下面是用Verilog HDL描述的二选一多路器,采用结构体建模方式。
module mux_structure(a,b,sel,c);input a,b,sel;output c;wire x0,x1,x2;and_gate a1(.a(a),.b(x0),.c(x1));and_gate a2(.a(sel),.b(b),.c(x2));实例化模块or_gate o1(.a(x1),.b(x2),.c(c));inverter i1(.a(sel),.c(x0));endmodulemodule and_gate(a,b,c);//双输入与门模型input a,b;output c;and(c,a,b);endmodulemodule or_gate(a,b,c);//双输入或门模型input a,b;output c;or (c,a,b);endmodulemodule inverter(a,c);//双输入非门模型input a;output c;reg c;always @(a) beginc<=~a;endendmodule由下图3和下图4可以看出结构化建模的不同之处原语 原语行为描述 图3 由Verilog HDL 行为建模综合出的电路模型图4 由Verilog HDL 结构化建模综合出的电路模型三个种VERILOG 建模方式共同的测试平台。
`timescale 1ns/1nsmodule tb;reg a,b,sel;wire c;mux_behaviour m1(.a(a),.b(b),.sel(sel),.c(c));initialbeginsel=0; a=0; b=0;foreverbegin#0 sel=0; a=0; b=0;#10 sel=0; a=1; b=0;#10 sel=0; a=0; b=1;#10 sel=0; a=1; b=1;#10 sel=1; a=0; b=0;#10 sel=1; a=1; b=0;#10 sel=1; a=0; b=1;#10 sel=1; a=1; b=1;#10;endendendmodule三种VHDL建模方式共同的测试平台。
library ieee;use ieee.std_logic_1164.all;entity mux_tb isend mux_tb;architecture behaviour of mux_tb iscomponent mux_behaviour isport(a : in std_logic;b : in std_logic;sel : in std_logic;c : out std_logic);end component;signal a : std_logic:= '0';signal b : std_logic:= '0';signal sel : std_logic:= '0';signal c : std_logic;beginu1: mux_behaviour port map( a => a,b => b,sel => sel,c => c );test_process: processbeginwait for 0 ns ; sel<='0' ; a<='0' ; b<='0';wait for 10 ns ; sel<='0' ; a<='0' ; b<='1';wait for 10 ns ; sel<='0' ; a<='1' ; b<='0';wait for 10 ns ; sel<='0' ; a<='1' ; b<='1';wait for 10 ns ; sel<='1' ; a<='0' ; b<='0';wait for 10 ns ; sel<='1' ; a<='0' ; b<='1';wait for 10 ns ; sel<='1' ; a<='1' ; b<='0';wait for 10 ns ; sel<='1' ; a<='1' ; b<='1';wait for 10 ns ;end process;end behaviour;图5 三种建模方式的关系在一个工程中,这三种建模方式可以灵活使用。