用VHDL設計的任意頻率分頻器
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;
關鍵詞: VHDL任意頻率分頻器
您可能也感興趣:
為您推薦
一季度社保基金新進14只個股 養老金賬戶新進9只個股
一季度廣東保險業總資產增長9.99% 面向服務業加大風險保障力度
丹東發布工傷保險費率調整方案 將惠及1萬多戶參保單位
排行
最近更新
- 用VHDL設計的任意頻率分頻器
- 光纖光纜及其器件基礎概括
- 去醫院就診該如何描述自己的病情 要注意這四個方面
- 總臉紅心跳可能是得了甲亢 患者該如何治療
- 重慶市婚姻家庭社會工作“家和計劃”項目開展“你好,情緒”...
- 組織進行淫穢表演直播?小伙子你攤上事兒了
- 裸聊1分鐘,信息全泄露!
- 說說網站域名那些事兒
- 軟件工程師海外進修變“軟禁”
- 晚起床不如早睡覺 睡眠質量不好將會影響血糖
- “利潤這么高?那我也試試!”
- 同城美女相邀私密約會,你能把持的住嗎?
- 山泉汩汩
- 思鴻網校教資面試結構化問答,人際關系篇
- 【家庭賬單里的重慶】——小賬本起大作用 兒子變得“精打細算”
- 上海發揮互聯網醫院的作用 向市民提供在線復診等便民服務
- 一季度武漢固定資產投資增長20% 工業經濟新動能效應明顯
- 省外“破圈”不易 今世緣屢次提價營收仍未達標
- 真環保還是真賺錢?蘋果不送充電器血賺400多億
- 特斯拉第二工廠太搶手!9城競奪塵埃未定,珠海稱:正洽談
- 可口可樂Q1營收利潤均超預期 疫情和通脹是兩大挑戰
- 割韭菜能管用?快狗打車四年巨虧28億,司機轉投貨拉拉
- 杭州2022年首批集中成交額超820億 本土房企表現強勁
- 子公司“失控”,科華生物或被實施退市風險警示
- 喜姐炸串再獲千萬融資,開業門店數存疑、加盟食安難控
- 央行下調外匯存款準備金率,人民幣貶值降溫
- 中信銀行廣州分行原行長謝宏儒違規收受禮品、禮金被通報
- 天價慈善活動時隔兩年回歸:誰將與巴菲特共進最后一次午餐
- 離岸人民幣匯率跌破6.6關口,央行再度出手,影響幾何
- 浙商銀行一季度總資產規模同比增速超20%,資本充足率下滑