FPGA常识

1 、wire型和reg型
        wire网线型表示硬件单元之间的连线,值由驱动单元决定,缺省值是高阻值z。模块的输入输出信号数据类型默认为wire型。
        reg寄存器型表示一个抽象的数据储存单元,只能在always和initial语句中用<=赋值,缺省值是不定值x。


2 、连续赋值和过程赋值
        连续赋值常以assign为关键词,用"="赋值,赋值的对象是wire型用于驱动wire网线,assign不能出现在always和initial语句中。
示例:assign c=sel?a:b;  assign c={a,b};
        过程赋值只能出现在initial和always语句中,用"="和"<="赋值,赋值的对象是reg型用于驱动reg寄存器,过程赋值又分为阻塞赋值和非阻塞赋值。


3 、阻塞赋值和非阻塞赋值
        首先要知道在同一个always里不能既用非阻塞赋值又用阻塞赋值。不能在两个不同的always语句块中对同一个变量赋值。
        阻塞赋值操作符是"=",赋值语句在句块中按顺序依次赋值,一条赋值语句执行完成等式左边的值立刻改变,下一条赋值语句只能等当前赋值语句执行完成才能执行。
假设初始值A=1,B=3

always@(posedge clk)
begin
    B=A;
    C=B+1;
end


这个语句块执行一次后的结果为B=1,C=2

        非阻塞赋值操作符是"<=",非阻塞赋值首先计算语句块中所有赋值语句等式右边表达式的值,然后等always语句块结束再同时对所有赋值语句左边寄存器变量进行赋值。
假设初始值A=1,B=3

always@(posedge clk)
begin
    B<=A;
    C<=B+1;
end


这个语句块执行一次后的结果为B=1,C=4


4 、二进制码与BCD码、格雷码

  • 4
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值