目录
1.Verilog简介
Verilog语言是1983年由GDA(Gateway Design Automation)公司的Phil Moorby首创的,之后Moorby又设计了Verilog-XL仿真器,Verilog-XL仿真器大获成功,也使得Verilog语言得到推广使用。
 1989年,Cadence收购了GDA
 1990年,Cadence公开发表了Verilog HDL,并成立了OVI组织(Open Verilog International)专门负责Verilog HDL的发展。
 Verilog于1995年成为IEEE标准,称为IEEE Standard 1364-1995(Verilog-1995)
 IEEE“1364-2001”标准(Verilog-2001)也获得了通过,多数综合器、仿真器都已经支持Verilog-2001标准
 2.Verilog设计举例
 

3.Verilog程序的特点
(1)Verilog程序是由模块构成的。每个模块的内容都嵌在module和endmodule两个关键字之间;每个模块实现特定的功能;模块是可以进行层次嵌套的。
 (2)每个模块首先要进行端口定义,并说明输入和输出口(input、output或inout),然后对模块的功能进行逻辑描述。
 (3)Verilog程序书写格式自由,一行可以写几个语句,一个语句也可以分多行写。
 (4)除了endmodule等少数语句外,每个语句的最后必须有分号。
 (5)可以用 /*……*/ 和 //…… 对Verilog程序作注释。好的源程序都应当加上必要的注释,以增强程序的可读性和可维护性。
  
4.Verilog模块的结构
module AOI (A,B,C,D,F); //模块名为AOI
input A,B,C,D; //模块的输入端口为A,B,C,D
output F; //模块的输出端口为F
wire A,B,C,D,F; //定义信号的数据类型
assign F= ~((A&B)|(~(C&D))); //逻辑功能描述
endmodule
该程序的第1行为模块的名字、模块的端口列表;第2、3行为输入输出端口声明,第4行定义了端口的数据类型;在第5行中对输入、输出信号间的逻辑关系进行了描述。
module  <顶层模块名> (<输入输出端口列表>);
 output  输出端口列表;         //输出端口声明
 input   输入端口列表;         //输入端口声明
 /*定义数据,信号的类型,函数声明*/
 reg  信号名;
 //逻辑功能定义
 assign <结果信号名>=<表达式>;    //使用assign语句定义逻辑功能
 //用always块描述逻辑功能
 always @ (<敏感信号表达式>)
   begin
    //过程赋值
    //if-else,case语句
    //while,repeat,for循环语句
    //task,function调用
   end 
 //调用其他模块
  <调用模块名module_name > <例化模块名> (<端口列表port_list >);
 //门元件例化
  门元件关键字 <例化门元件名> (<端口列表port_list>);
 endmodule
  
5.Verilog语言要素
Verilog 程序由符号流构成,符号包括
 空白符(White space)
 注释(Comments)
 操作符(Operators)
 数字(Numbers)
 字符串(Strings)
 标识符(Identifiers)
 关键字(Keywords)等
空白符(White space)
 空白符包括:空格、tab、换行和换页。空白符使代码错落有致,阅读起来更方便。在综合时空白符被忽略。
  注释(Comment)
 ◆ 单行注释:以“//”开始到本行结束,不允许续行
 ◆ 多行注释:多行注释以“/*”开始,到“*/”结束
  
标识符(Identifiers)
 Verilog中的标识符可以是任意一组字母、数字以及符号“$”和“_”(下划线)的组合,但标识符的第一个字符必须是字母或者下划线。另外,标识符是区分大小写的。
  
6.常量
        程序运行中,值不能被改变的量称为常量(constants),Verilog中的常量主要有如下3种类型: 
 整数
 实数
 字符串
Verilog有下面四种基本的逻辑状态。
 ◆ 0:低电平、逻辑0或逻辑非
 ◆ 1:高电平、逻辑1或“真”
 ◆ x或X:不确定或未知的逻辑状态
 ◆ z或Z:高阻态
 Verilog中的所有数据类型都在上述4类逻辑状态中取值,其中x和z都不区分大小写,也就是说,值0x1z与值0X1Z是等同的。
7.参数
在Verilog语言中,用参数parameter来定义符号常量,即用parameter来定义一个标志符代表一个常量。参数常用来定义时延和变量的宽度。
 其定义格式如下:
 parameter 参数名1=表达式1,参数名2=表达式2,参数名3=表达式3, …… ;
 例如:
 parameter  sel=8,code=8'ha3;
 //分别定义参数sel代表常数8(10进制),参数code代表常量a3(16进制)
  
                  
                  
                  
                  
                            
                            
Verilog是一种硬件描述语言,始于1983年,用于数字电路的设计和仿真。它由模块构成,每个模块包含输入输出端口定义和逻辑功能描述。Verilog支持多种数据类型和操作符,包括常量、参数和各种逻辑状态。该语言在1995年成为IEEE标准,并不断演化,如Verilog-2001标准。
          
                    
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
                    
              
            
                  
					310
					
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
					
					
					


            