网站搭建徐州百都网络搭建,微信公众号平台wordpress,网站建设怎么购买域名,网站运营 流程一、语言要素
(一)概述
1、空白符#xff08;White Space#xff09; 空格、换行、换页、Tab等#xff1b; 是代码错落有致#xff0c;提高可读性。 2、注释#xff08;Comment#xff09; 单行注释#xff1a;“ // ”#xff1b; 多行注释#xff1a;“ /* ”~“ …一、语言要素
(一)概述
1、空白符White Space 空格、换行、换页、Tab等 是代码错落有致提高可读性。 2、注释Comment 单行注释“ // ” 多行注释“ /* ”~“ */ ”。 3、标识符Identifier 字母、数字、_、$最长1023个字符。 4、关键字Key Word 所有的关键字都是小写的。 5、运算符Operator
二常量
1、整数Integer /-位宽’进制数字 1较长的数之间可用下划线分开 2未定义整数位宽则默认32位 3定义位宽比数值位数长通常在左边填0补位如果数最左边一位为x或z就相应地用x或z在左边补位 4“”是高阻态z的另一种表示符号数字表示中与“z”等价可互相替代 5x或z在二进制中代表1位x或z在八进制中代表3位x或z在十六进制中代表4位x或z其代表的宽度取决于所用的进制。 6整数可以带符号且正负号应写在最左边负数通常表示为二进制补码形式 7位宽与进制默认时默认是十进制数 8位宽和’之间、进制与数值之间允许出现空格‘和进制之间、数值之间不允许出现空格 9带符号整数定义例8’sh5a。 2、实数Real 十进制表示法 小数点两侧都必须有数字 科学计数法 实数转整数 四舍五入 3、字符串String reg型变量 若声明的reg型变量位数大于字符串实际长度则赋值操作后字符串变量的左端即高位补0若小于则字符串左端被截去。
三数据类型
1、四值逻辑 0低电平、逻辑0或逻辑非 1高电平、逻辑1或“真” z或Z高阻态 x或X不确定或未知的逻辑状态。 2、数据类型: net型 相当于硬件电路各物理连接特点是输出的值紧跟输入值的变化而变化。 1wire型 默认为wire型。位连接到驱动值为高阻态。 2tri型 增加程序可读性可以更清除地表示该信号综合后的电路连线具有三态的功能。 variable型register型。 1reg型 综合时综合器根据具体情况映射成寄存器或连线。 2integer型 多用于表示循环的变量。不能做为位向量访问。 综合时初始值为x。 3real型 表示实数寄存器主要用于仿真不可综合。 4time型 用于对模拟时间的存储与处理不可综合。
四参数
1、参数parameter
2、参数声明
3、参数传递 1“#”符号隐式重载 2在线显式重载 3defparam语句显示重载 4、localparam 定义局部参数。
五向量
1、标量与向量 2、位选择和域选择 3、存储器
六运算符
1、算数运算符 - * / % 2、逻辑运算符 || ! 3、位运算符 ~ | ^ ^~ ~^ 4、关系运算符 5、等式运算符 相等运算符 ! 全等运算符 ! 6、缩减运算符是单目运算符 ~ | ~| ^ 异或 ^~ , ~^ 同或 7、移位运算符 算数移位操作符 8、指数运算符 ** 9、条件运算符 10、位拼接运算符 { } 将两个或多个信号某些位拼接起来符号位扩展嵌套使用移位操作。 11、运算符的优先级
二、语句语法
一过程语句
initial用于初始化只执行一次 always重复执行可综合。
always过程语句 带触发条件 1、敏感信号列表“sensitivity list” 边沿敏感型、电平敏感型 2、posedge与negedge关键字 posedge clk时钟信号clk的上升沿作为触发条件 negedge clk时钟信号clk的下降沿作为触发条件。 3、Verilog-2001标准对敏感信号列表 1敏感信号列表中可用逗号分隔敏感信号 2敏感信号列表中使用通配符“**” 4、用always过程块实现较复杂的组合点亮
initial过程语句 initial语句不带触发条件其块语句沿时间轴只执行一次。
二块语句
串行块begin-end 并行块fork-join
三赋值语句
1、持续赋值与过程赋值 assign 为持续赋值语句主要用于对wire型变量的赋值 过程赋值语句主要用于对reg型变量进行赋值。 2、阻塞赋值与非阻塞赋值
四条件语句
if-else语句 case语句 1、case语句 2、casez与casex语句
五循环语句
for语句 repeat语句连续执行一条语句n次 while语句 forever语句连续执行语句多用在initial块中以生成时钟等周期性波形。
六编译指示语句
1、宏替换define 2、文件包含include 3、条件编译ifdef、else、endif if 宏名 endif 当宏名在程序中被定义过的话则下面的语句块参与源文件的编译否则该语句块将不参与源文件的编译。
七任务与函数
1、任务 2、函数
八顺序执行与并发执行
九Verilog—2001语言标准
1、改进和增强的语法结构 提高Verilog行为级和RTL级建模的能力 改进Verilog在深亚微米设计和IP建模的能力 纠正和改进了Verilog-1995标准中的错误和易产生歧义之处。 1ANSI C风格的模块声明 2逗号分隔的敏感信号表 3在组合逻辑敏感信号列表中使用通配符“ * ” 4generate语句 5带符号的算数扩展 6指数运算符 * * 7变量声明时进行赋值 8常数函数 9向量的位选和域选 10多维矩阵 11矩阵的位选则和部分选择 12模块的实例化时的参数重载 13register改为variable 14新增条件编译语句 15超过32位的自动宽度扩展 16可重入任务Re-entrant Task和递归函数Recursive Function 17文件和行编译指示 2、属性及PLI接口 1设计管理 2属性 3增强的文件输入、输出操作 4VCD文件的扩展 5提高了对SDF标准延时文件的支持 6编程语言接口PLI的改进
三、Verilog设计的层次与风格
一Verilog设计的层次
抽象级别5级 系统级System Level 算法级Algorithm Level 寄存器传输级Register Transfer LevelRTL 门级Gate Level 开关级Switch Level 描述方式 结构Structural描述 行为Behavioural描述 数据流Data Flow描述
二门级结构描述
1、门元件 2、门级结构描述 3、行为描述 4、数据流描述 5、不同描述风格设计 6、多层次结构电路设计 7、基本组合电路设计 8、基本时序电路设计 9、三态逻辑设计