求最小公倍数
求最小公倍數
題目描述
設計一個時序電路,輸入2個無符號數,位寬可以通過參數DATA_W確定,輸出這兩個數的最小公倍數和最大公約數。
模塊的接口信號圖如下:
題目解讀
題目要求求解兩個數的最小公倍數,而最小公倍數可以通過兩個數的乘積除以兩個數的最小公約數得到。乘法是容易計算的,所以問題變成如何求解最大公約數。可以采用輾轉相減法求解,例如 :兩個自然數35和14,用大數減去小數,(35,14)->(21,14)->(7,14),此時,7小于14,要做一次交換,把14作為被減數,即(14,7)->(7,7),再做一次相減,結果為0,這樣也就求出了最大公約數7。
然后可以實現除法器IP核或者之間使用 ‘/’進行除法運算得到最小公倍數,‘/’在多數的編譯器中也可以進行綜合。
`timescale 1ns/1nsmodule 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 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: win10系统win键失灵怎么办
- 下一篇: 任意奇数倍时钟分频