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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
查看: 5377|回复: 5

[求助] 如何用verilog实现分数乘法和低通滤波器lpf

[复制链接]
发表于 2020-10-5 22:44:13 | 显示全部楼层 |阅读模式

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

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

×
请问如何用verilog实现下图,输入是1bit数字信号,想让转换为4bit数字输出,model中只含有若干乘法系数和一个一阶数字LPF。也看了一些资料,乘法可以用这段代码实现吧,比如15/16 可以这样实现:output =( (input<<3) + (input<<2) + (input <<1) + input ) >>4; 1/64是  output = input  >>6;
不知对不对?本人以前没写过verilog代码,还是对verilog基本的框架拿不准,大家能否帮忙实现一下,我再根据这个进一步开发其他verilog程序。谢谢!

digital_part.JPG


发表于 2020-10-7 22:32:08 | 显示全部楼层
输入虽然是0101,但是你还是要进行量化,否则右移以后就全是0了。如果不会写可以试试HDL coder。下面是一个例子,已经仿过了,可以直接用。
`timescale 1ns/1ps
module lpf
( output [ 18 : 0 ] lpf_out,
  input [ 15 : 0 ] lpf_in,
  input clk,
  input rst );
  
  wire [ 15 : 0 ] lpf_in_div64;
  wire [ 16 : 0 ] sum1;
  reg [ 16 : 0 ] sum1_d1;
  wire [ 16 : 0 ] sum1_d1_31div32;
  wire [ 17 : 0 ] sum2;
  wire [ 17 : 0 ] sum2_15div16;

  assign lpf_in_div64 = lpf_in >> 6;
  assign sum1 = lpf_in_div64 + sum1_d1_31div32;
  always @( posedge clk or posedge rst ) begin
    if( rst ) sum1_d1 <= 17'b0;
    else      sum1_d1 <= sum1;
  end
  assign sum1_d1_31div32 =   ( sum1_d1 >> 1 )
                           + ( sum1_d1 >> 2 )
                           + ( sum1_d1 >> 3 )
                           + ( sum1_d1 >> 4 )
                           + ( sum1_d1 >> 5 );
  
  assign sum2 = sum1 + sum1_d1;
  
  assign sum2_15div16 =   ( sum2 >> 1 )
                        + ( sum2 >> 2 )
                        + ( sum2 >> 3 )
                        + ( sum2 >> 4 );
  assign lpf_out = ( lpf_in >> 4 ) + sum2_15div16;
endmodule
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-11-17 06:04:17 | 显示全部楼层
非常感谢!
回复 支持 反对

使用道具 举报

发表于 2022-2-10 17:02:36 | 显示全部楼层


   
quantus 发表于 2020-10-7 22:32
输入虽然是0101,但是你还是要进行量化,否则右移以后就全是0了。如果不会写可以试试HDL coder。下面是一个 ...


大佬,请问您懂判决反馈均衡器吗,怎么用Verilog去实现啊
回复 支持 反对

使用道具 举报

发表于 2022-3-23 02:36:27 来自手机 | 显示全部楼层


   
quantus 发表于 2020-10-7 22:32
输入虽然是0101,但是你还是要进行量化,否则右移以后就全是0了。如果不会写可以试试HDL coder。下面是一个 ...


师兄,您好,我最近也是在仿真这个滤波器,已经读完这段代码;我也是对右移有这个困扰,0101右移四位之后就是0了,那师兄说的量化具体是该怎么做呢,还望师兄指教
回复 支持 反对

使用道具 举报

发表于 2023-1-5 14:21:19 | 显示全部楼层
1bit数字输入,先扩展2^12
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-9-16 09:11 , Processed in 0.021329 second(s), 6 queries , Gzip On, Redis On.

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