关于进制,大家都不陌生,生活中最常见的是十进制,十进制表示的数用0-9这十个数字,大家都非常熟悉,但是在Verilog中,最常用的则是二进制和十六进制,下面进行详细举例:
2进制,常用b来表示 (binary_digit) 2进制只有0和1这两个数字
8进制 ,常用o来表示(octal_dight) 8进制用0-7这8个数字来进行表示
10进制,常用d来表示(decimal_dight) 10进制用0-9 这10个数字来进行表示
16进制,常用h来表示(hex_digit) 16进制 0,1,2,3,4,5,6,7,8,9,10,a,b,c,d,e,f (a,b,c........等大写也可以)
注意,如果在Verilog中没有说明则默认十进制。
比如在verikog中,有个数字是10,这个则表示10进制的10;
如果是'b10,这个就表示2进制的'b10,换算成10进制就是2;
如果是'o10,这个则表示8进制的'o10,换算成10进制就是8;
如果是’h10,这个则表示16进制的'h10,换算成10进制就是16;
前面还可以加位宽:比如3'b1就是,3’b001,表示位宽是3,前面不够补0,这个换算成10进制就是1,3‘b1 =3'b001;
8'da,这个则是非法的,二进制没有a,只有0和1.
思考:如果给a = 8'b1,这个数据的所有位宽全部赋值为1,除了使用a = 8‘b1111_1111,还有其它方法么?
评论区见。