吉安市规划建设局网站,建设银行信用卡网站登录,创业给别人做网站怎么样,西安网站建设系统开发ZYNQ是一个fpga用来硬件编程#xff0c;外加一个软件编程 FPGA是可通过编程来修改其逻辑功能的数字集成电路 第三篇语法篇
第七章 verilog HDL语法
Verilog的简介
可编程逻辑电路#xff1a;允许用户自行修改内部连接的集成电路#xff0c;其内部的电路结构可以通过编程数…ZYNQ是一个fpga用来硬件编程外加一个软件编程 FPGA是可通过编程来修改其逻辑功能的数字集成电路 第三篇语法篇
第七章 verilog HDL语法
Verilog的简介
可编程逻辑电路允许用户自行修改内部连接的集成电路其内部的电路结构可以通过编程数据来设置写入的编程数据还可以擦除
FPGA是基于查找表的CLB阵列
数字系统设计流程 Verilog和c的区别
Verilog是硬件描述语言在下载到FPGA中后会生成电路是并行运行的
c语言下载到单片机中之后是存储器中的一组指令而单片机处理软件指令是需要取指、译码、执行这个过程是串行执行 FPGA的特点就是运行速度特别快要有硬件设计的思想 程序框架
Verilog的逻辑值
逻辑0表示低电平也就是电路的GND 逻辑1表示高电平也就是电路的vcc 逻辑x表示未知有可能是高电平也有可能是低电平 逻辑z表示高阻态表示外部没有激励信号是一个悬空的状态 没有输入驱动 verilogd的标识符
书写规范
1、用有意义的有效的名字如 sum、cpu_addr 等。
2、用下划线区分词语组合如 cpu_addr。
3、采用一些前缀或后缀比如时钟采用 clk 前缀clk_50mclk_cpu低电平采用_n 后缀 enable_n
4、统一缩写如全局复位信号 rst。
5、同一信号在不同层次保持一致性如同一时钟信号必须在各模块保持一致。
6、自定义的标识符不能与保留字关键词同名。
7、参数统一采用大写如定义参数使用 SIZE。
进制
二进制
二进制表示如下4’b0101 表示 4 位二进制数字 0101
十进制
4’d2 表示 4 位十进制数字 2二进制 0010
十六进制
4’ha 表示 4 位十六进制数字 a二进制 1010········ 要是没有标识默认位宽就是32位位宽就是一次可以传输多少位二进制数 默认10进制数 数组类型
1、寄存器类型
寄存器类型是表示一个抽象的数据存储单元它只能在always和initial语句中被赋值并且它的值从一个赋值到另一个赋值过程中被保存下来。如果该过程语句描述的是时序逻辑即 always 语句带有时钟 信号则该寄存器变量对应为寄存器如果该过程语句描述的是组合逻辑即 always 语句不带有时钟信 号则该寄存器变量对应为硬件连线寄存器类型的缺省值是 x未知状态。 寄存器数据类型有很多种如 reg、integer、real 等其中最常用的就是 reg 类型它的使用方法如
//reg define
reg [31:0] delay_cnt; //延时计数器
reg key_flag ; //按键标志2、线网类型
线网表示 Verilog 结构化元件间的物理连线。它的值由驱动元件的值决定例如连续赋值或门的输 出。如果没有驱动元件连接到线网线网的缺省值为 z高阻态。线网类型同寄存器类型一样也是有很 多种如 tri 和 wire 等其中最常用的就是 wire 类型它的使用方法如下
//wire define
wire data_en; //数据使能信号
wire [7:0] data ; //数据
3、参数类型
我们再来看下参数类型参数其实就是一个常量常被用于定义状态机的状态、数据位宽和延迟大小 等由于它可以在编译时修改参数的值因此它又常被用于一些参数可调的模块中使用户在实例化模块 时可以根据需要配置参数。在定义参数时我们可以一次定义多个参数参数与参数之间需要用逗号隔 开。这里我们需要注意的是参数的定义是局部的只在当前模块中有效。它的使用方法如下
//parameter define
parameter DATA_WIDTH 8; //数据位宽为8位
运算符
逻辑运算符与位运算符的差别
逻辑运算符 位运算符 不同位宽的数据进行位运算会将位小的用0补齐 , 一个数据位宽为4表示这个数据由4位数组成 拼接运算符 Verilog程序框架 关键字小写 module 模块开始定义 input 输入端口定义 output 输出端口定义 inout 双向端口定义 parameter 信号的参数定义 wire wire信号定义 reg reg信号定义 always 产生reg信号语句的关键字 assign 产生wire信号的关键字 begin 语句的起始标志 end 语句的结束标志 posedge/negedeg 时序电路的标志 case case语句的起始标志 default case语句的默认·分支标志 endcase case语句结束标志 if if/else语句标记 else if/else语句标志 for for语句标记 endmodule 模块结束定义 Verilog 高级知识点
模块的结构
每个程序都由4个部分组成
端口定义、io说明、内部信号声明、功能定义
第一行给出了所有端口第二、三行说明了端口的io功能5、6是功能定义 模块的调用函数的调用