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