1、Verilog HDL简介
Verilog HDL是出现较早的硬件描述语言(HDL),比VHDL还要早,所以用户较多,特别是在工业应用,而VHDL是由美国军方开发的一种硬件描述语言,也是IEEE的标准,但应用不如Verilog广泛,在教学上应用较多。
Verilog 的第一版IEEE标准是1364-1995,后来又绝对修改为1364-2001,到2005年Verilog 被分为两支,都是对2001标准的修正与扩展,分别称为1364-2005和SystemVerilog-2005。现在多数EDA工具都支持Verilog -2001和SystemVerilog-2005,对Verilog-2005还不是太清楚有哪些改动,有待学习。
2、Verilog与VHDL的简单比较
Verilog语法与C语言非常相似,语法结构清析、简洁、灵活。一般的硬件工程师对C比较熟悉所以学起来比较方便。Verilog不是强类型,变量只有两种类型wire与reg,所以用起来比较灵活,但语法不严格,容易出错,而VHDL是强类型,类型丰富,语法严谨,不容易出错。
可能VHDL是出于军方的原因,语法严谨是其一突出特点。语法太严格对书写要求也就较高,可能会让编程者书写一大堆无关紧要的代码,所以有些开发人员就不愿意用,一开始学习VHDL,到后来还是用Verilog做开发。
3、Verilog学习笔记
1)wire与reg
Verilog中一共就有两种数据类型,wire与reg,而且两者的使用场合很容易区分。wire就是线,reg就是寄存器,跟硬件是紧密关联的,很容易与硬件建立联系。
引脚定义:一般地输入用wire型,输出用reg型,如果没有寄存器生成输出也用wire型
中间变量:如果仅仅是给连线的一个节点命名则用wire,如同电路图中的net名,reg用于定义循环变量、寄存器变量等
2) 双向口的定义
双向端口是net类型,不能直接给其赋值
首先在端口列表中定义双向口,定义一个reg型的变量,相当于定义一个缓冲器,先把要输出的值送到REG变量中,然后用assign语句将REG变量的值赋给双向端口。当双向端口当输入使用时,可以直接当成一个普通的输入端口读取其值。
示例代码如下:
module bidircBus(ctrl,DataIn,DataOut,DataInout);
input ctrl;
input [3:0]DataIn;
output [3:0]DataOut;
inout [3:0]DataInout;
assign DataOut=DataInout;
assign DataInout=(ctrl==1"b0)?DataIn:"bz;
endmodule
编写测试模块时,对于inout类型的端口,需要定义成wire类型变量,而其它输入端口都定义成reg类型,这两者是有区别的.
当上面例子中的data_inout用作输入时,需要赋值给data_inout,其余情况可以断开.此时可以用assign语句实现:assign data_inout=link?data_in_t:1'bz;其中的link ,data_in_t是reg类型变量,在测试模块中赋值.
另外,可以设置一个输出端口观察data_inout用作输出的情况:
Wire data_out;
Assign data_out_t=(!link)?data_inout:1'bz;
3) 编程风格讨论
a) begin...end块
begin 与 end 如果缩进,太多的话会缩进得太多,屏幕本身还要放置其它窗口,缩进太多则显得文本太宽,如果不缩进,与always,for, if等对齐,则读起来又显得不是太舒服,把begin放到always,for,if等词之后则较好,end与 之对齐,如:
always @ * begin
if ( !nEn ) begin
out = 1;
end
end
b) 尽量使每一个always块最小,这样就要对信号的模块进行分组,原则是尽可能地以输出信号人准分组,同一组输出变量分到一个always块中,其它块中不对该变量赋值,这样就不会在多个always块中给同一变量赋值。而且便于检查是否有由于对if或case的语句情况考虑不足产生不必要的锁存器。
分享到:
相关推荐
VerilogHDL语言学习资料基础教程文档资料合集(13份): VerilogHDL扫盲文.pdf verilogHDL精粹1.pdf verilog_经验(适合初学者).pdf Verilog基础知识.pdf verilog开发的官方手册.pdf Verilog的135个经典设计实例.pdf ...
verilog学习心得,verilog学习心得
verilog 学习资料,希望对大家有用的。
Verilog 学习心得 1.数字电路基础知识: 布尔代数、门级电路的内部晶体管结构、组合逻辑电路分析与设计、触发器、时序逻辑电路分析与设计 2.数字系统的构成: 传感器 AD 数字处理器 DA 执行部件
资源包括了三章Verliog学习ppt课件,希望对大家有用,适合初学者,简单易懂
VERILOG学习过程中关键点,常见易错点,绝对有用!
verilog学习资料,包括夏宇闻verilog经典教程,东南大学、卡内基梅陇大学讲义,入门黄金指南,实例进阶提高等等。
verelog 例题 语法 设计基础
FPGA与Verilog学习手记 适合学习FPGA开发,非常感谢下载。
ALTERA FPGA设计Verilog设计学习资料文档资料Verilog学习教程: Cyclone IV器件手册.pdf Cyclone_IV_器件中的时钟网络与PLL.pdf Embedded Peripherals IP User Guide.pdf FPGA设计全流程.pdf Modelsim仿真技巧REV6.0...
verilog学习与设计的电子书 学会verilog不再是问题
verilog学习,特别是后面那135个例子可以练下手,比较繁琐但却是个好机会
Verilog HDL是一种硬件描述语言,用于从算法级、门级到...Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然 , 完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述
非常有用的verilog学习的用书,很实用。讲的非常全面。对初学者有很大的帮助。
CADENCE 的Verilog 学习教程,讲的还可以,PPT, 中文
夏宇闻verilog视频03 学习FPGA选择verilog还是vhdlitweng 92% 2612 夏宇闻verilog视频04 FPGA设计中如何避免冒险竞争itweng 100% 2630 夏宇闻verilog视频05 Verilog中行为级和RTL级itweng 100% 2583 夏宇闻verilog...
北大微电子学系的于敦山的非常详细的Verilog学习资料,希望能帮到大家
学习verilog 必看的十点建议,帮助大家实现更加优秀的设计,希望对大家有用。