用VHDL实现分频器.doc
上传人:yy****24 上传时间:2024-09-09 格式:DOC 页数:2 大小:19KB 金币:12 举报 版权申诉
预览加载中,请您耐心等待几秒...

用VHDL实现分频器.doc

用VHDL实现分频器.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

12 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entityfenpinisPort(RESET:instd_logic;CLK:instd_logic;CLKOUT1:outstd_logicCLKOUT1:outstd_logicCLKOUT1:outstd_logic);--分配三个输出口endfenpin;architectureBehavioraloffenpinissignaldiv_val1:integerrange0to2;--分频值=2*2signaldiv_val2:integerrange0to4;signaldiv_val3:integerrange0to8;signaldiv_clk1:std_logic;--因为CLKOUT是out类型,--用div_clk1来暂存signaldiv_clk2:std_logic;signaldiv_clk3:std_logic;beginprocess(CLK,RESET)beginif(RESET='0')then--RESET的优先级最高div_clk1<='0';div_clk2<='0';div_clk3<='0';elsif(CLK'eventandCLK='1')then--判断CLK上升沿if(div_val1=2)thendiv_val1<=0;div_clk1<=notdiv_clk1;elsediv_val1<=div_val1+1;--在CLK的上升--沿div_val1自加1,加到2时清零并将div_clk1取反endif;if(div_val2=4)thendiv_val2<=0;div_clk2<=notdiv_clk2;elsediv_val2<=div_val2+1;--在CLK的上升--沿div_val2自加1,加到4时清零并将div_clk2取反endif;if(div_val3=8)thendiv_val3<=0;div_clk3<=notdiv_clk3;elsediv_val3<=div_val3+1;--在CLK的上升--沿div_val3自加1,加到8时清零并将div_clk3取反endif;endif;endprocess;CLKOUT1<=div_clk1;CLKOUT2<=div_clk2;CLKOUT3<=div_clk3;endBehavioral;