关于位宽的verilog语法问题

jshzp 2020-06-19 03:49:31
下面四个高阻数值表示方式,有什么取别?
16'bzzzzzzzzzzzzzzzz
16'bz
16'hz
16'dz
望指教,谢谢!
...全文
3080 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
李锐博恩 2020-06-27
  • 打赏
  • 举报
回复
引用 楼主 jshzp的回复:
下面四个高阻数值表示方式,有什么取别?
16'bzzzzzzzzzzzzzzzz
16'bz
16'hz
16'dz
望指教,谢谢!
verilog 2001规定,没有赋值的部分会补零赋值。
李锐博恩 2020-06-27
  • 打赏
  • 举报
回复
你是对的,没毛病
jshzp 2020-06-27
  • 打赏
  • 举报
回复
引用 6 楼 Reborn Lee 的回复:
[quote=引用 楼主 jshzp的回复:]下面四个高阻数值表示方式,有什么取别?
16'bzzzzzzzzzzzzzzzz
16'bz
16'hz
16'dz
望指教,谢谢!

verilog 2001规定,没有赋值的部分会补零赋值。[/quote]
感谢回复!
dataBus<=16'bz;
上式是补z,更一般地:如果赋值是z或x,就是补z或x,否则就是补0,对吧?
jshzp 2020-06-20
  • 打赏
  • 举报
回复
引用 3 楼 qq_708907433 的回复:
	assign	ts_reg1		= 16'bzzzz_zzzz_zzzz_zzzz;
assign ts_reg2 = 16'bz;
assign ts_reg3 = 16'hz;
assign ts_reg4 = 16'dz;

assign ts_reg5 = 16'b1z;
assign ts_reg6 = 16'h1z;

assign ts_reg7 = 16'bx;
assign ts_reg8 = 16'hx;

assign ts_reg9 = 16'b1xz;
assign ts_reg10 = 16'h1xz;



结果
ts_reg1 = 16'bzzzz_zzzz_zzzz_zzzz;
ts_reg2 = 16'bzzzz_zzzz_zzzz_zzzz;
ts_reg3 = 16'bzzzz_zzzz_zzzz_zzzz;
ts_reg4 = 16'bzzzz_zzzz_zzzz_zzzz;

ts_reg5 = 16'b0000_0000_0000_001z;
ts_reg6 = 16'b0000_0000_0001_zzzz;
ts_reg7 = 16'bxxxx_xxxx_xxxx_xxxx;
ts_reg8 = 16'bxxxx_xxxx_xxxx_xxxx;
ts_reg9 = 16'b0000_0000_0000_01xz;
ts_reg10 = 16'b0000_0001_xxxx_zzzz;

非常感谢!
1 oo % 2020-06-20
  • 打赏
  • 举报
回复
学习学习学习!!!!
老皮芽子 2020-06-20
  • 打赏
  • 举报
回复
	assign	ts_reg1		= 16'bzzzz_zzzz_zzzz_zzzz;
	assign	ts_reg2		= 16'bz;
	assign	ts_reg3		= 16'hz;
	assign	ts_reg4		= 16'dz;

	assign	ts_reg5		= 16'b1z;
	assign	ts_reg6		= 16'h1z;

	assign	ts_reg7		= 16'bx;
	assign	ts_reg8		= 16'hx;

	assign	ts_reg9		= 16'b1xz;
	assign	ts_reg10		= 16'h1xz;
结果 ts_reg1 = 16'bzzzz_zzzz_zzzz_zzzz; ts_reg2 = 16'bzzzz_zzzz_zzzz_zzzz; ts_reg3 = 16'bzzzz_zzzz_zzzz_zzzz; ts_reg4 = 16'bzzzz_zzzz_zzzz_zzzz; ts_reg5 = 16'b0000_0000_0000_001z; ts_reg6 = 16'b0000_0000_0001_zzzz; ts_reg7 = 16'bxxxx_xxxx_xxxx_xxxx; ts_reg8 = 16'bxxxx_xxxx_xxxx_xxxx; ts_reg9 = 16'b0000_0000_0000_01xz; ts_reg10 = 16'b0000_0001_xxxx_zzzz;
jshzp 2020-06-20
  • 打赏
  • 举报
回复
引用 1 楼 Hwa_Zz 的回复:
结果上一致 只是表达方式不同 纠结这些干嘛.....

感谢回复!
16'b1111111111111111和16'b1是不同的数,一个是65536,一个是1。对于高阻表达方式,是不是也有这种区别?例如我给16位数据总线赋值,分别用:
dataBus<=16'bzzzzzzzzzzzzzzzz;
dataBus<=16'bz;
前面的写法数据总线就是16根都是高阻状态,后面的写法就只是最低位高阻,而高15位并没赋值。我理解的对吗?
许闪闪丶 2020-06-19
  • 打赏
  • 举报
回复
结果上一致 只是表达方式不同 纠结这些干嘛.....

6,163

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 硬件设计
社区管理员
  • 硬件设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧