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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1096|回复: 7

[原创] veriloga代码求助

[复制链接]
发表于 2024-4-5 21:36:14 | 显示全部楼层 |阅读模式

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

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

x
求助各位大佬,我使用veriloga代码编写了一个二进制转温度计码的decoder,但是我设置的输出高电平是1.2V,但是测试输出的高电平一直是1V,问题出在哪里呀

代码如下:

// VerilogA for 20240302, decoder, veriloga

`include "constants.vams"
`include "disciplines.vams"

module decoder (in,out,bb);
input [5:0] in;
output [63:0] out;
output [63:0] bb;
electrical [5:0]in;
electrical [63:0]out;
electrical [63:0]bb;
parameter V1=1.2;
integer sum;
integer out_v [63:0];
integer bb_v [63:0];
genvar i;
genvar j;
analog begin
        sum = 0;
        generate i (0,5)
                sum=sum+((V(in[i])>=V1)?1:0)*pow(2,i);

        for (i=0; i<=63; i=i+1)
                if(i<=sum)
                        out_v[i]=1.2;
                else
                        out_v[i]=0;

        for(j=0;j<=63;j=j+1)
                bb_v[j]=1.2;

       
        generate i (63,0)
                V(out[i])<+transition(out_v[i],0,0.1n);
        generate j (63,0)
                V(bb[j])<+transition(bb_v[j],0,0.1n);
end
endmodule

仿真结果如下:(输入为111111)

7PPQU{QWPLBUCDOY4{V{F{K.png
发表于 2024-4-5 23:38:54 | 显示全部楼层
integer out_v [63:0]; integer bb_v [63:0]; 改成real类型试试
 楼主| 发表于 2024-4-6 16:10:13 | 显示全部楼层


zixin1hao 发表于 2024-4-5 23:38
integer out_v [63:0]; integer bb_v [63:0]; 改成real类型试试


添加real后报错:encountered multiple type definition
发表于 2024-4-6 20:57:08 | 显示全部楼层
你的out或者bb全是integer类型,而1.2是浮点数字,把1.2赋值给out或者bb的时候,1.2会变成integer类型,也就是1
 楼主| 发表于 2024-4-7 09:48:46 | 显示全部楼层


一碗小米粥 发表于 2024-4-6 20:57
你的out或者bb全是integer类型,而1.2是浮点数字,把1.2赋值给out或者bb的时候,1.2会变成integer类型,也 ...


我把V1定义改为parameter integer,幅值时给bb和out输出V1,仿真结果还是1
发表于 2024-4-7 10:36:44 | 显示全部楼层
你改成V(out[i])<+transition(out_v[i]*1.2,0,0.1n);试试呢
发表于 2024-4-7 10:50:28 | 显示全部楼层
根据你的代码,sum = 0;应该只有第一位,也就是只有i = 0时out为1.2,然后我把你的代码根据上面说的改了之后就可以运行了,out[0] = 1.2,其他全为0(用的是你的代码,只改了out的类型)
 楼主| 发表于 2024-4-7 12:00:02 | 显示全部楼层


一碗小米粥 发表于 2024-4-7 10:50
根据你的代码,sum = 0;应该只有第一位,也就是只有i = 0时out为1.2,然后我把你的代码根据上面说的改了之 ...


谢谢大佬,问题解决了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-27 20:52 , Processed in 0.020333 second(s), 8 queries , Gzip On, Redis On.

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