在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 11600|回复: 20

[求助] 求一个3位二进制转温度计码的veriloga

[复制链接]
发表于 2019-9-7 14:15:03 来自手机 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
大神速来。。。不胜感激
发表于 2019-9-7 15:03:17 | 显示全部楼层
本帖最后由 jzr1989 于 2019-9-7 15:09 编辑

Y0=I0||I1||I2;
Y1=I1||I2;
Y2=I0&&I1||I2;
Y3=I2;
Y4=I0||I1&&I2;
Y5=I1&&I2;
Y6=I0&&I1&&I2;

____________________________________________________________________________________

I2 I1 I0         Y6 Y5 Y4 Y3 Y2 Y1 Y0
0  0  0           0  0  0  0  0  0  0
0  0  1           0  0  0  0  0  0  1
0  1  0           0  0  0  0  0  1  1
0  1  1           0  0  0  0  1  1  1
1  0  0           0  0  0  1  1  1  1
1  0  1           0  0  1  1  1  1  1
1  1  0           0  1  1  1  1  1  1
1  1  1           1  1  1  1  1  1  1
 楼主| 发表于 2019-9-7 15:30:07 来自手机 | 显示全部楼层
这个主要是想要一个方法,先用三位的给个veriloga的示例,实际会用到很高位的温度计编码
发表于 2019-9-9 10:46:18 | 显示全部楼层
没编译,应该差不多。

如果需要其他位数的译码器直接改 N 值就行了。





  1. `define N 3
  2. module va_bin2thermo(in, out);
  3.         input [`N-1:0] in; electrical [`N-1:0] in;
  4.         output [1:2**`N-1] out; electrical [1:2**`N-1] out;
  5.        
  6.         parameter real VDD = 1;
  7.        
  8.         integer i, d;
  9.         integer din[`N-1:0];
  10.        
  11.         analog begin
  12.                 generate j (0, `N-1) begin
  13.                         din[j] = (V(in[j]) > VDD/2.0)?1:0;
  14.                 end
  15.                
  16.                 d = 0;
  17.                 for(i=`N-1; i>0; i=i-1) begin
  18.                         d = d*2+din[i];
  19.                 end
  20.                
  21.                 generate k (1, 2**`N-1) begin
  22.                         V(out[k]) <+ (k <= d)?VDD:0;
  23.                 end
  24.         end
  25. endmodule



复制代码



 楼主| 发表于 2019-9-10 14:45:24 来自手机 | 显示全部楼层


远上寒杉 发表于 2019-9-9 10:46
没编译,应该差不多。

如果需要其他位数的译码器直接改 N 值就行了。


谢谢大神,d=d*2上面,改成i>=0就成功了
发表于 2021-8-9 20:42:45 | 显示全部楼层
谢谢分享
发表于 2022-5-7 14:52:45 | 显示全部楼层


远上寒杉 发表于 2019-9-9 10:46
没编译,应该差不多。

如果需要其他位数的译码器直接改 N 值就行了。


非常感谢,可以用
发表于 2022-5-25 15:10:59 | 显示全部楼层


远上寒杉 发表于 2019-9-9 10:46
没编译,应该差不多。

如果需要其他位数的译码器直接改 N 值就行了。


*Error* eval: unbound variable - AHDLUpdateViewInfo
大佬,请问报这个错是怎么回事
发表于 2022-8-23 15:51:28 | 显示全部楼层
谢谢大佬分享
发表于 2023-3-21 17:55:39 | 显示全部楼层


远上寒杉 发表于 2019-9-9 10:46
没编译,应该差不多。

如果需要其他位数的译码器直接改 N 值就行了。


感谢,帮助很大。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-23 08:36 , Processed in 0.020752 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表