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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: come_on_sn

[求助] Verilog中自定义一个函数 实现统计7bit输入信号中1的个数的功能

[复制链接]
 楼主| 发表于 2021-1-15 09:02:30 | 显示全部楼层


临界 发表于 2021-1-14 23:14
就是你把这7位数的每种情况都写出来,然后每种情况肯定有一个固定的1的个数,这里面可以用sram来做,7位b ...


可以直接定义一个函数 实现7bit输入 3bit输出的功能吧
 楼主| 发表于 2021-1-15 09:07:53 | 显示全部楼层


临界 发表于 2021-1-14 23:14
就是你把这7位数的每种情况都写出来,然后每种情况肯定有一个固定的1的个数,这里面可以用sram来做,7位b ...


case语句就得写2^7=128个情况,这手写有点难度啊
 楼主| 发表于 2021-1-15 09:26:00 | 显示全部楼层
写了一个循环函数,但是一直提示语法错误,请教各位大佬





  1. function    [2:0]  add3;
  2.         input [6:0]  A;
  3.                   reg [2:0] count = 3'd0;
  4.     begin
  5.     for(i=0;i<6;i=i+1)begin
  6.     if(A[i] == 1'b1)begin
  7.         count = count + 1;
  8.     end
  9.     else
  10.         count = count + 0;


复制代码


 楼主| 发表于 2021-1-15 10:00:51 | 显示全部楼层


kdwwolf 发表于 2021-1-14 22:29
这个是时序问题吧,频率过高?还有就是查找表。


7个bit直接相加,有时正确,有时错误(此处错误指上板错误,功能仿真还是正确的)
发表于 2021-1-15 10:25:32 | 显示全部楼层
你用函数写,就是误区,verilog不是C,电路只有组合和时序2种,如果你总合成7次连续的组合逻辑加法器,那在高频时钟下就可能出问题,建议用时序逻辑pipeline来做,7个clock出结果,这是个很简单的功能。
 楼主| 发表于 2021-1-15 10:46:55 | 显示全部楼层


glace12123 发表于 2021-1-15 10:25
你用函数写,就是误区,verilog不是C,电路只有组合和时序2种,如果你总合成7次连续的组合逻辑加法器,那在 ...


统计7bit中1的个数,需要完成72次,因此想着是写函数,方便调用些
发表于 2021-1-15 11:36:32 | 显示全部楼层
thanks
发表于 2021-1-15 13:58:08 | 显示全部楼层


come_on_sn 发表于 2021-1-15 10:00
7个bit直接相加,有时正确,有时错误(此处错误指上板错误,功能仿真还是正确的) ...


你后仿了吗?
查看综合后的报告了吗?
功能仿真说明不了时序问题。
 楼主| 发表于 2021-1-15 15:14:29 | 显示全部楼层


kdwwolf 发表于 2021-1-15 13:58
你后仿了吗?
查看综合后的报告了吗?
功能仿真说明不了时序问题。


后仿和上板出现相同的错误
发表于 2021-1-15 20:07:04 来自手机 | 显示全部楼层
加起來
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-6-3 00:06 , Processed in 0.031867 second(s), 6 queries , Gzip On, Redis On.

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