zynq基础-->verilog简易规则

 命名规则

verilog 中文件及内容模块的命名方式也是依据面向对象的思想命名。

类型命名方式实例
顶层文件对象+功能+topvideo_oneline_top
逻辑控制文件对象+ctrddr_ctr.v
驱动程序对象+功能+dri

lcd_dri.v

uart_rxd_dri.v

参数文件对象+para

lcd_para.v

模块接口

文件名+u

特征名+文件名+u

lcd_dir

lcd_dir_u(......)

mcb_read

c3_mcb_read_u

 

端口注释

对象+通道+方向

input video_vs_i

时钟信号

对象+功能+特征

phy_txclk_i

sys_50mhz_i

复位信号

对象+功能+极性+特性

phy_rst_n_i

sys_rst_n_i

延迟信号

对象+功能+特性1+特性2

fram_sync_i_r0

特性功能计数

对象(+功能)(+对象)+cnt

line_cnt

rd_cnt

mem_wr_cnt

video_line_cnt

一般计数器

cnt+序号

cnt0

时许同步信号

对象+功能+特性

line_sync_i

使能信号

(对象)+功能+en

wr_en

fifo_wr_en

 

关键字

input

设置一个输入信号,如同单片机设置引脚为输入状态一样,只能读,不能写。

 

output

设置一个输出信号。

 

inout

设置双向信号,即可写也可读。

 

wire

线信号,用于连接单元。

 

reg

寄存器,以位为基本单位存储,可以设置多位。

例如:

reg [1:0] state;//state存储两位

结构

代码块

begin

...

end

与C的大括号用法一样

模块

module [模块名称](输入输出参数)

........

endmodule

模块内部写代码

敏感信号

always@(...) 

begin

 

end

当括号内的信号满足触发时,才执行语句块的内容。

比如:always@(posedge clk)代表clk信号为上升沿时,则执行语句块内容。

分配

assign用于wire类连线,将表达式右边的电路连接到左边,左边随右边变化。

比如:

wire a,b,y;

assign y = a & b;

判断

if(...)

begin

...

end

 

if(....)

begin

...

end

else if(...)

begin

end

 

case(...)

....

endcase

符号

verilog大部分符号与C是一样的用法,下面仅说明不同部分。

非阻塞赋值

A <= 1'b1;

非阻塞赋值是同时的,而阻塞赋值时有先后顺序的。

比如:

A <= 1'b1;

B <= 1'b1;

代表同时给A和B赋值

A = 1'b1;

B <= 1'b1;

代表先给A赋值再给B赋值

冒号

用于数组、条件运算、case结构中。

例如:

reg[3:0]led;

代表名为led的reg类型数组,有4个元素。

拼接符

{a,b}代表将括号内的a和b按位并在一起。

例如:{1001,1110}拼接结果为10011110

参数

常量

parameter a = 0;

定义一个名为a的常数,数值为0,占用长度为32位。

对于不同位数使用如下格式:

[wide]'[d/h/b][val];

例如:

parameter a = 8'd180;//8位十进制数,值为180

parameter a = 8'haa;//8位十六进制数,值为aa

parameter a = 8'b1010_1010;//8位二进制数,值为10101010,其中"_",仅仅为了便于观察,可有可无。

预处理

verilog预处理与C很类似,预处理符号使用"`"开头.

注意:

在引用已定义的宏名时,必须在宏名前加上"`"。

例如:

`include file.v  //包含文件file.v

`define  X 1    //定义宏x 值为1

`ifdef X

  z = 1;

`else

  z = 0;

`endif

 

转载于:https://www.cnblogs.com/KcMeterCEC/p/5691679.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zynq-7000是Xilinx推出的一款全新的可编程系统芯片(SoC),其核心特点是将ARM Cortex-A9处理器与可编程逻辑器件(FPGA)集成在一起。ZED是由Digilent和Avnet合作生产的一款基于Zynq-7000 SoC的开发板。 关于Zynq-7000-ZED的资料,您可以从以下几个方面进行了解和获取: 1. 官方文档:Xilinx官方网站提供了针对Zynq-7000 SoC的详细技术资料和应用指南,包括技术手册、用户指南、应用笔记等。这些资料涵盖了硬件设计、软件开发、调试和测试等方面的内容,非常全面详细。 2. 社区论坛:在Xilinx官方网站上,您可以加入或搜索Xilinx社区论坛。这个论坛是一个交流平台,可以与其他用户分享经验和解决问题。在论坛上,您可以找到很多关于使用Zynq-7000-ZED进行开发的实际案例和技术讨论。 3. 参考设计和开发板说明:Digilent和Avnet官方网站上提供了基于Zynq-7000-ZED开发板的一些参考设计和示例代码。这些参考设计涵盖了不同的应用领域,包括图像处理、通信、机器学习等。通过研究这些设计,您可以更好地了解如何使用Zynq-7000-ZED进行应用开发。 4. 在线教程和视频:在互联网上,有许多第三方的在线教程和视频可以帮助您快速入门Zynq-7000-ZED的开发。这些教程和视频通常以实际的项目为例,展示了如何进行硬件设计、软件开发和调试等过程。 总之,Zynq-7000-ZED的资料非常丰富,包括官方文档、社区论坛、参考设计、在线教程等多种渠道。只要您愿意花时间去研究和学习,就能够轻松掌握Zynq-7000-ZED的开发技术和应用方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值