用VHDL設(shè)計的任意頻率分頻器
Sometimes I need to generate a clock at a lower frequency than the main clock driving the FPGA. If the ratio of the frequencies is a power of 2, the logic is easy. If the ratio is an integer N, then a divide-by-N counter is only a little harder. But if the ratio isn"t an integer, a little (and I mean a little) math is required. Note that the new clock will have lots of jitter: there"s no escaping that. But it will have no drift, and for some applications that"s what counts. If you have a clock A at frequency a, and want to make a clock B at some lower frequency b (that is, b a), then something like: d = 0; forever { Wait for clock A. if (d 1) { d += (b/a); } else { d += (b/a) - 1; /* getting here means tick for clock B */ } } but comparison against zero is easier, so subtract 1 from d: d = 0; forever { Wait for clock A. if (d 0) { d += (b/a); } else { d += (b/a) - 1; /* getting here means tick for clock B */ } } want an integer representation, so multiply everything by a: d = 0; forever { Wait for clock A. if (d 0) { d += b; } else { d += b - a; /* getting here means tick for clock B */ } } For example. I just bought a bargain batch of 14.1523MHz oscillators from BG but I need to generate a 24Hz clock. So a=14152300 and b=24: d = 0; forever { Wait for clock A. if (d 0) { d += 24; } else { d += 24 - 14152300; /* getting here means tick for clock B */ } } For a hardware implementation I need to know how many bits are needed for d: here it"s 24 bits to hold the largest value (-14152300) plus one more bit for the sign. In VHDL this looks like: signal d, dInc, dN : std_logic_vector(24 downto 0); process (d) begin if (d(24) = "1") then dInc = 0000000000000000000011000; -- (24) else dInc = 1001010000000110110101100; -- (24 - 14152300) end if; end process; dN = d + dInc; process begin wait until A"event and A = "1"; d = dN; -- clock B tick whenever d(24) is zero end process;
關(guān)鍵詞: VHDL任意頻率分頻器
您可能也感興趣:
今日熱點
為您推薦
一季度社?;鹦逻M14只個股 養(yǎng)老金賬戶新進9只個股
一季度廣東保險業(yè)總資產(chǎn)增長9.99% 面向服務(wù)業(yè)加大風險保障力度
丹東發(fā)布工傷保險費率調(diào)整方案 將惠及1萬多戶參保單位
更多
- 年產(chǎn)240萬片12英寸外延片!中欣晶圓項目將試生產(chǎn)
- 三星加入韓國元老級創(chuàng)業(yè)公司DoubleMe的2500萬美元融資計劃
- 石墨烯的量子魔法帶來了新超導材料
- Mendix公司與ValueMomentum升級合作關(guān)系,為客戶創(chuàng)造更大價值
- 軟通動力首款SwanLinkOS商顯發(fā)行版通過認證
- 康普觀點:智能網(wǎng)絡(luò)是成功之道
- Codasip擴大汽車處理器團隊并任命Jamie Broome為負責該業(yè)務(wù)的副總裁
- 我國全球創(chuàng)新指數(shù)排名升至第12位 5年來發(fā)明專利達253.1萬件
排行
最近更新
- 用VHDL設(shè)計的任意頻率分頻器
- 光纖光纜及其器件基礎(chǔ)概括
- 去醫(yī)院就診該如何描述自己的病情 要注意這四個方面
- 總臉紅心跳可能是得了甲亢 患者該如何治療
- 重慶市婚姻家庭社會工作“家和計劃”項目開展“你好,情緒”...
- 組織進行淫穢表演直播?小伙子你攤上事兒了
- 裸聊1分鐘,信息全泄露!
- 說說網(wǎng)站域名那些事兒
- 軟件工程師海外進修變“軟禁”
- 晚起床不如早睡覺 睡眠質(zhì)量不好將會影響血糖
- “利潤這么高?那我也試試!”
- 同城美女相邀私密約會,你能把持的住嗎?
- 山泉汩汩
- 思鴻網(wǎng)校教資面試結(jié)構(gòu)化問答,人際關(guān)系篇
- 【家庭賬單里的重慶】——小賬本起大作用 兒子變得“精打細算”
- 上海發(fā)揮互聯(lián)網(wǎng)醫(yī)院的作用 向市民提供在線復診等便民服務(wù)
- 一季度武漢固定資產(chǎn)投資增長20% 工業(yè)經(jīng)濟新動能效應(yīng)明顯
- 省外“破圈”不易 今世緣屢次提價營收仍未達標
- 真環(huán)保還是真賺錢?蘋果不送充電器血賺400多億
- 特斯拉第二工廠太搶手!9城競奪塵埃未定,珠海稱:正洽談
- 可口可樂Q1營收利潤均超預期 疫情和通脹是兩大挑戰(zhàn)
- 割韭菜能管用?快狗打車四年巨虧28億,司機轉(zhuǎn)投貨拉拉
- 杭州2022年首批集中成交額超820億 本土房企表現(xiàn)強勁
- 子公司“失控”,科華生物或被實施退市風險警示
- 喜姐炸串再獲千萬融資,開業(yè)門店數(shù)存疑、加盟食安難控
- 央行下調(diào)外匯存款準備金率,人民幣貶值降溫
- 中信銀行廣州分行原行長謝宏儒違規(guī)收受禮品、禮金被通報
- 天價慈善活動時隔兩年回歸:誰將與巴菲特共進最后一次午餐
- 離岸人民幣匯率跌破6.6關(guān)口,央行再度出手,影響幾何
- 浙商銀行一季度總資產(chǎn)規(guī)模同比增速超20%,資本充足率下滑
今日要聞
- 用VHDL設(shè)計的任意頻率分頻器
- 光纖光纜及其器件基礎(chǔ)概括
- 子公司“失控”,科華生物或被實施退市風險警示
- 湖南發(fā)布優(yōu)化營商環(huán)境行動計劃 加強企業(yè)信貸支持和用工保障
- 天價慈善活動時隔兩年回歸:誰將與巴菲特共進最后一次午餐
- 真環(huán)保還是真賺錢?蘋果不送充電器血賺400多億
- 央行下調(diào)外匯存款準備金率,人民幣貶值降溫
- 證監(jiān)會就萬物云IPO反饋:要求說明是否存股東利益輸送等問題及公司受處罰整改情況
- 割韭菜能管用?快狗打車四年巨虧28億,司機轉(zhuǎn)投貨拉拉
- 特斯拉第二工廠太搶手!9城競奪塵埃未定,珠海稱:正洽談