Verilog入门笔记

先贴两个链接:
http://blog.csdn.net/alexanderrr/article/details/51615463
http://blog.chinaunix.net/uid-21227800-id-65936.html

1.Verilog是种描述语言,与C语言有本质不同,原理上类似于模块的拼接,与语句的顺序无关。
2.reg类型相当于寄存器,wire相当于导线,assign也相当于连线。

assign相当于一条连线,将表达式右边的电路直接通过wire(线)连接到左边,左边信号必须是wire型。当右边变化了左边立马变化,方便用来描述简单的组合逻辑。

3.reg型,只能在always或initial过程块中赋值
4.always @(a or b or c)/(a,b,c)表示其一有变化就执行,内部语句用begin与end相当于“{“与“}“的作用,always #10 “语句A”表示每10ns执行一次语句A,always @(*)好像是一直执行

在verilog2001以后,“,”和“or”都可以用来分割敏感事件了,可以用“*”代表所有输入信号,这可以防止遗漏。
合法的写法:
always@ *
always@ (posedge clk1,negedge clk2)
always@ (a or b)
`timescale 100ns/100ns //定义仿真基本周期为100ns
always #1 clk=~clk //#1代表一个仿真周期即100ns
所有的assign和always块都是并行发生的!

5.if else case 只能用在aways语句中
6.循环的一般写法:

genvar  j;
generate
    for (j=0; j<QUANT; j=j+1)
    begin: 
        //循环内容
    end
  endgenerate
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值