设计一个时序电路,输入2 个无符号数, 位宽可以通过参数DATA_W 确定,输出这两个数的最小公倍数和最大公约数。 模块的接口信号图如下: 要求使用Verilog HDL 语言实现,并编写testbench 验证模块的功能。

区块链毕设网qklbishe.com为您提供问题的解答

       设计一个时序电路,输入2个无符号数,位宽可以通过参数DATA_W确定,输出这两个数的最小公倍数和最大公约数。

模块的接口信号图如下:
        设计一个时序电路,输入2 个无符号数, 位宽可以通过参数DATA_W 确定,输出这两个数的最小公倍数和最大公约数。    	模块的接口信号图如下:   	   	 		要求使用Verilog HDL 语言实现,并编写testbench 验证模块的功能。

要求使用Verilog HDL语言实现,并编写testbench验证模块的功能。

`timescale 1ns/1ns

module lcm#(
parameter DATA_W = 8)
(
input [DATA_W-1:0] A,
input [DATA_W-1:0] B,
input             vld_in,
input            rst_n,
input             clk,
output    wire    [DATA_W*2-1:0]     lcm_out,
output    wire     [DATA_W-1:0]    mcd_out,
output    reg                    vld_out
);
    reg [DATA_W*2-1:0] tmp; 
    reg [DATA_W-1:0]  mcd_out_tmp;
    reg [DATA_W*2-1:0]  lcm_out_tmp;
    always@(*)begin
        if(vld_out==1)begin
            tmp={A[DATA_W-1:0],B[DATA_W-1:0]};
            while(tmp[DATA_W*2-1:DATA_W]!=tmp[DATA_W-1:0])begin
                if(tmp[2*DATA_W-1:DATA_W]<tmp[DATA_W-1:0])
                    tmp={tmp[DATA_W-1:0],tmp[2*DATA_W-1:DATA_W]};
                tmp[2*DATA_W-1:DATA_W]=tmp[2*DATA_W-1:DATA_W]-tmp[DATA_W-1:0];
            end
            mcd_out_tmp=tmp[DATA_W-1:0];
            lcm_out_tmp=A*B/mcd_out_tmp;
        end
        else begin 
            mcd_out_tmp=1’b0;
            lcm_out_tmp=1’b0;
        end       
    end
    
    always@(posedge clk or negedge rst_n)begin
        if(~rst_n)
            vld_out<=0;
        else begin
            if(vld_in)
                vld_out<=1;
            else
                vld_out<=0;
        end
    end
    assign mcd_out=mcd_out_tmp;
    assign lcm_out=lcm_out_tmp;
 

endmodule
没通过 问题在哪

50:14

以上就是关于问题       设计一个时序电路,输入2 个无符号数, 位宽可以通过参数DATA_W 确定,输出这两个数的最小公倍数和最大公约数。 模块的接口信号图如下: 要求使用Verilog HDL 语言实现,并编写testbench 验证模块的功能。的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

从业7年-专注一级市场


微信:btc9767
TELEGRAM :https://t.me/btcok9

具体资料介绍

web3的一级市场千万收益的逻辑


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 »        设计一个时序电路,输入2 个无符号数, 位宽可以通过参数DATA_W 确定,输出这两个数的最小公倍数和最大公约数。 模块的接口信号图如下: 要求使用Verilog HDL 语言实现,并编写testbench 验证模块的功能。