当前位置: 首页 > news >正文

【【带有握手信号的无符号数乘法verilog+ testbench 代码】】

带有握手信号的无符号数乘法verilog+ testbench 代码

uumultiplier.v

module uumultiplier #(parameter       NUMBER1      =      8                    ,parameter       NUMBER2                                                                                                                                                                                                            =      10)(input  [NUMBER1-1 : 0]                  input1       ,input  [NUMBER2-1 : 0]                  input2       ,input                                   clk          ,input                                   rst_n        ,input                                   begin_en     ,output  reg                             finish_en    ,output  reg [NUMBER1+NUMBER2 : 0]       out);//======================================================================================\//                define parameter  and  internal signal                                \//======================================================================================\reg [NUMBER1+NUMBER2 : 0]       out1    ;//==========================================================================================\//                     next   is  main  code                                                 \\//===========================================================================================\\
always@(posedge clk or negedge rst_n)beginif(rst_n == 0)beginout <= 0 ;endelse  if(begin_en && finish_en )beginout <= input1 * input2 ;endelseout <= out ;endalways@(posedge clk or negedge rst_n )beginif(rst_n == 0)beginout1 <= 0 ;endelseout1 <= out ;endalways@(posedge clk or negedge rst_n)beginif(rst_n == 0)beginfinish_en <= 1'b1 ;endelse if(out != out1)beginfinish_en <= 1'b1 ;endelsefinish_en <= 1'b0 ;endendmodule

uumultiplier_tb.v

module uumultiplier_tb #(parameter       NUMBER1      =      8                    ,parameter       NUMBER2      =      10                   );reg  [NUMBER1-1 : 0]                  input1      ;
reg  [NUMBER2-1 : 0]                  input2      ;
reg                                   clk         ;
reg                                   rst_n       ;
reg                                   begin_en    ;
wire                             finish_en        ;
wire [NUMBER1+NUMBER2 : 0]       out              ;uumultiplier#(.NUMBER1    ( NUMBER1 ),.NUMBER2    ( NUMBER2 )
)u_uumultiplier(.input1     ( input1     ),.input2     ( input2     ),.clk        ( clk        ),.rst_n      ( rst_n      ),.begin_en   ( begin_en   ),.finish_en  ( finish_en  ),.out        ( out        )
);always    #5     clk = ~clk   ;initial begin clk =  0 ;rst_n = 0 ;input1 = 1 ;input2 = 1 ;begin_en = 1 ;#20rst_n = 1 ;input1 = 10 ; input2 = 8 ;#20input1 = 12 ; input2 = 8 ;#20 input1 = 1 ; input2 = 8 ;#20input1 = 3 ; input2 = 5 ;end
endmodule 
http://www.lryc.cn/news/211578.html

相关文章:

  • 【Python机器学习】零基础掌握BayesianRidge贝叶斯回归
  • 【机器学习】朴素贝叶斯算法基本原理与计算案例
  • redis6.0源码分析:简单动态字符串sds
  • 1.7 攻击面和攻击树
  • 解决input在谷歌浏览器自动填充问题
  • Java字节码技术
  • Java SE 学习笔记(十八)—— 注解、动态代理
  • 虚拟内存之请求分页管理
  • lazarus开发:提升sqlite数据插入速度
  • 瑞萨RH850-P1X ECM和英飞凌TC3xx SMU对比
  • Ajax学习笔记第三天
  • ESP32-C3 低功耗懒人开关:传统开关轻松上云和本地控制
  • 前端学习路线指南:从入门到精通【①】
  • Flash模拟EEPROM原理浅析
  • Typora 最新激活方法
  • jenkins如何安装?
  • 从零开始的LINUX(三)
  • CleanMyMac2024永久免费版Mac系统磁盘清理工具
  • HashSet 元素不重复
  • 基于SpringBoot的二手车交易系统的设计与实现
  • 最短路径:迪杰斯特拉算法
  • 基于UDP/TCP的网络通信编程实现
  • springboot启动报错
  • Python中的split()函数
  • 大数据-玩转数据-Python Sftp Mysql 数据
  • Selenium3-当元素通过@FindBy获取时,返回元素为null
  • JWT详解解读读
  • 一文详解如何从 Oracle 迁移数据到 DolphinDB
  • 负载均衡--Haproxy
  • 股票价格预测 | 融合CNN和Transformer以提升股票趋势预测准确度