85度c蛋糕房网站系统建设,长春有微信网站一起整的吗,霸州网站开发,做网站找景安0 确定问题的讨论层级与范围
本文讨论的层次是
数字逻辑与Verilog HDL语言
讨论的范围是#xff1a;
数据存储而不是讨论逻辑
1 线网类型
1.1 wire类型
这个暂时没什么好说的#xff0c;一般常用的就是wire类型#xff0c;需要注意的是#xff1a;
默认是标量…0 确定问题的讨论层级与范围
本文讨论的层次是
数字逻辑与Verilog HDL语言
讨论的范围是
数据存储而不是讨论逻辑
1 线网类型
1.1 wire类型
这个暂时没什么好说的一般常用的就是wire类型需要注意的是
默认是标量相当于一个二进制位不能随意存储数据只能流通数据可以使用向量和数组修饰进行拓展
wire一个二进制位一根导线wire 向量修饰多二进制位总线2 寄存器类型
2.1 reg类型
2.1.1 关于无符号数的问题
先接受一个事实声明为reg类型的寄存器为无符号数integer和real类型为有符号数请先接受这个事实不要怀疑它接下来我将通过实验为你验证它的确如此
reg a -4‘d9;
reg b -4sd9;输出均为 7 也就是负数的补码对应的十进制数字
2.1.2 关于越界的问题——数据存储的通用法则
这与逻辑运算不同不是非0即为1遵循的规则是
越界丢失
事实上这条规则对于所有的需要使用数值的数据类型都适用对于reg和net一类类型都一样的
简而言之不能吃太饱要是撑破了多出来的部分就会归零。
例如
reg a 112;
$display (a %b\n,a);输出为
a 0因为a是一位112的二进制为111 0000故前几位丢失只保留最后一位0
因此如果a 113那么将会被储存为1 得到输出结果 扩展多角度分析数值越界问题
2.1.3 关于补码的问题
计算机只要知道这是个补码肯定会正确翻译出来一个负数但是得用正确的数据类型才行否则依然不能正确翻译出来比如对于负数不能使用reg类型 只能用integer或者real这种支持有符号数的数据类型
2.2 integer类型
用来表示整数可以有正负号
最小32位轻易不用管它不用指定位宽按照默认就好说了最小32位就是32位指定31位也会变成32位这种规则不要挑战没有用的。
2.3 real类型
用来表示实数即可以表述带小数点的数可以有正负号
2.4 time类型
最小64位与具体实现有关用来表示时间通常与$time配合使用
time sim_time $time; // 存储当前仿真时间2.5 小结
类型使用位宽备注字符串格式reg一般通用默认为1无符号数%b %Binteger整数最小32位有符号数%d %Dreal实数最小32位有符号数%f %Ftime仿真时间最小64位表示仿真时间%t %T
注意
以上4个类型中只有reg类型能加向量修饰以便于进行位宽的拓展integer和real类型与主机字的位数一致与具体实现有关time位数与具体实现有关字符串的显示看具体需求无强制要求上述只是列举了针对性对应的字符串
补充概念计算机的字的位数 计算机位字字节字长详解