verilog初学篇(一)

刚开始学verilog,学一点写一点。

1.亮个led灯

刚开始如下写:
module liang(output dian);
dian=1;
endmodule
在modelsim编译出错,检查dian=1;
遇到问题:赋值
查赋值语句:

  • assign语句
    用于对wire型变量赋值,是描述组合逻辑最常用的方法之一。
    赋值方式: 赋值变量 = 表达式; 如:assign out = in;

  • 过程赋值语句
    用于对reg型变量赋值,过程赋值语句出现在initial和always块语 句中,有两种赋值方式:
    阻塞(blocking)赋值方式: 赋值变量 = 表达式; 赋值符号为=,如 b = a ;
    非阻塞(non-blocking)赋值方式: 赋值变量 <= 表达式; 赋值符号为<=,如 b <= a ;
    修改后为:

module liang(output dian); 
     assign dian=1;
endmodule

接着到ISE里,引脚比如连为led0(具体想亮哪个查开发板相关文件即可);烧入后亮;

2.亮数码管

想着和上面一样,亮七段数码管的一段,直接把上面引脚改一下,结果并不亮,各种查,找不到这个太基础的问题,后来看别人例子,发现要有位选com,假如要让十位数字部分亮,应加入com0=1,如下:

module liangdian(
 output dian,
 output com0
); 
 assign com0=1;
 assign dian=1 ;
endmodule

设置好引脚,烧入,一段亮;

继续想让数码管亮数字,其实就是组合这几段亮或暗显示出想要的数字,这里算上小数点,共8段,只显示数字只用7段,如下:

module liangdian(
 output [7:0] dian,// output [7:1] dian,只显示数字
 output com0
); 
 assign com0=1;
 assign dian=8'b11111111;//assign dian=7'b1111111;这里都设为1,可见都亮,应该显示8,以及小数点   
endmodule

设置好引脚,烧入,亮8,以及小数点 ;不管小数点的话,这里给出所有数字:
7’b1111110;//0
7’b0110000;//1
7’b1101101;//2
7’b1111001;//3
7’b0110011;//4
7’b1011011;//5
7’b1011111;//6
7’b1110000;//7
7’b1111111;//8
7’b1111011;//9
7’b1110111;//16进制10,以A显示
7’b0011111;//16进制11,以b显示
7’b1001110;//12,C
7’b0111101;//13,d
7’b1001111;//14,E
7’b1000111;//15,F

第一篇完

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值