好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

eda 技术实用教程 数字系统设计举例.ppt

214页
  • 卖家[上传人]:第***
  • 文档编号:49857181
  • 上传时间:2018-08-03
  • 文档格式:PPT
  • 文档大小:3.76MB
  • / 214 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 数字系统设计举例1秒表1. 计数器计数器的计数值可以是整数类型,也可以是标准 逻辑数组或位类型数组它们各有特点,整数类 型加减运算方便,但是不能直接在maxplus中和图 形设计相接,标准逻辑数组虽然可以直接和图形 设计相接,但加减运算不方便 计数器也可以级联起来,组成多位计数器对标 准脉冲计数,其进位输出可以产生标准的分频频 率,成为分频器十进制计数器signal q: integer range 0 to 9; signal clk,p: bit; . process(clk) begin if clk’EVENT and clk=‘1’ then if q=9 then q dq1 dq1 dq1 dq1 dq1 dq1 dq1 dq1 dq1 dq1 dq dq dq dq dq dq dq dq dq dqMegaWizard plus-in Manager定制rom模块选择地址和数据输出的位宽,这里都选择10位内容初始化文件的名字点击Finish按钮完成Rom初始化文件由 如下程序产生:#include #include #define PI 3.14159265 main() { int i; float s; FILE *fp; if((fp=fopen(“rom.mif“,“w“))==NULL) { printf(“can not creat file\n“); exit(-1); } for(i=0;i10, lpm_widthad=>10,lpm_address_control=>“UNREGISTERED“,lpm_outdata=>“REGISTERED“,lpm_file=>“rom.mif“) Port map(outclk=>clk,address=>romadd,q=>ddsout);思考题:应用上面的DDS原理,设计一个产生方波的信号发生器, 占空比可调。

      数字系统设计举例3能控制自动打铃的时钟题目设计一个时钟,能设置两个时间,到这两个时间能够控制自 动响铃30秒时间调整和定时的设置使用两个按钮实现假设已经有了0.1秒的信号,10分频得到秒信号,为了调整需要,应当有 独立的秒、分钟、小时计数器signal q0,q1,q2,q3,q4,q5,q6: integer range 0 to 9; signal c0,c1,c2,c3,c4,c5,c6: bit; signal clk1s,clk1m,clk1h: bit; . process(clk) begin if clk’EVENT and clk=‘1’ then if q0=9 then q0 if rxd_sync=‘0’ then rns if rcnt16=7 and rxd_sync=‘0’ then rns if rcnt16=7 and rbitcnt/=framlen then rns if rcnt16=15 then rns null; end case; end process;process(bclk) begin if bclk’event and bclk=‘1’ then rcsa, sig2=>b); END; 12.3 仿真激励信号的产生 K KX康芯科技图12-3 BENCH仿真波形图 12.3 仿真激励信号的产生 K KX康芯科技force [][, …] [-repeat ] 第二种方法 :force a 0 (强制信号的当前值为0)force b 0 0, 1 10 (强制信号b在时刻0的值为0,在时刻10的值为1)force clk 0 0, 1 15 –repeat 20(clk为周期信号,周期为20 force a 10 0, 5 200, 8 400force b 3 0, 4 100, 6 300 12.4 VHDL测试基准 K KX康芯科技【例12-6】 Library IEEE; use IEEE.std_logic_1164.all; entity counter8 isport ( CLK,CE,LOAD,DIR,RESET: in STD_LOGIC;DIN: in INTEGER range 0 to 255;COUNT: out INTEGER range 0 to 255 ); end counter8; architecture counter8_arch of counter8 is begin process (CLK, RESET)variable COUNTER: INTEGER range 0 to 255; beginif RESET='1' then COUNTER := 0;elsif CLK='1' and CLK'event thenif LOAD='1' then COUNTER := DIN; (接下页)K KX康芯科技Elseif CE='1' thenif DIR='1' then if COUNTER =255 then COUNTER := 0;Else COUNTER := COUNTER + 1;end if;elseif COUNTER =0 then COUNTER := 255;Else COUNTER := COUNTER - 1;end if;end if;end if;end if;end if;COUNT CLK,RESET => RESET,CE => CE, LOAD => LOAD,DIR => DIR,DIN => DIN,COUNT => COUNT ); CLK_IN:process Begin (接下页)K KX康芯科技if end_sim = false then CLK '0'); elsif rising_edge(clk) then if ce = '1' then if load = '1' then count 23 THEN HS1 479 THEN VS1 clk25MHz, rgbin => rgb, hs => hs, vs => vs, r => r, g => g, b => b, hcntout => hpos, vcntout => vpos); i_rom : imgrom PORT MAP(inclock => clk25MHz, address => romaddr, q => rgb);END; K KX康芯科技【例13-3】 LIBRARY IEEE use IEEE.std_logic_1164.all; useIEEE.STD_LOGIC_UNSIGNED.ALL; entity vga640480 is port (clk: in STD_LOGIC; hs,vs,r,g,b : out STD_LOGIC; rgbin: in std_logic_vector(2 downto 0); hcntout,vcntout: out std_logic_vector(9 downto 0) ); end vga640480; architecture ONE of vga640480 is signal hcnt, vcnt: std_logic_vector(9 downto 0); begin hcntout '0'); end if; end if; end process; process(clk) begin if (rising_edge(clk)) then if (hcnt = 640+8 ) then if(vcnt '0');end if;(接下页)K KX康芯科技end if;end if; end process; process(clk) begin if (rising_edge(clk)) then if((hcnt>=640+8+8) and (hcnt= 480+8+2) and (vcnt D D D D NULL ;END CASE ;END PROCESS ;PROCESS(CLK)BEGINIF CLK'EVENT AND CLK = '1' THEN CQ D D D D NULL ;END CASE ;END PROCESS ;PROCESS(CLK)BEGINIF CLK'EVENT AND CLK = '1' then CQ '0');elsif (cnt D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D NULL ; END CASE; END PROCESS;DOUT c c c c c c “./data/LUT10X10.mif“, --波形数据初始化文件路径 lpm_hint => “ENABLE_RUNTIME_MOD=YES, INSTANCE_NAME=rom2“, . . . END; 实 验 与 设 计 K KX康芯科技11-3 直接数字式频率合成器(DDS)设计实验【例11-13】 LIBRARY IEEE; --32位加法器模块 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDER32B ISPORT ( A : IN STD_LOGIC_VECTOR(31 DOWNTO 0);B : IN STD_LOGIC_VECTOR(31 DOWNTO 0);S : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END ADDER32B; ARCHITECTURE behav OF ADDER32B ISBEGIN S F32B,B=>D32B, S=>DIN32B );u2 : REG32B PORT MAP( DOUT=>D32B,DIN=> DIN32B, LOAD=>CLK );u3 : SIN_ROM PORT MAP( address=>SIN10B, q=>FOUT, inclock=>CLK );u4 : ADDER10B PORT MAP( A=>P10B,B=>D32B(31 DOWNTO 22),S=>LIN10B );u5 : REG10B PORT MAP( DOUT=>SIN10B,DIN=>LIN10B, LOAD=>CLK ); u6 : SIN_ROM PORT MAP( address=>D32B(31 DOWNTO 22), q=>POUT, inclock=>CLK ); END; 实 验 与 设 计 K KX康芯科技1-5 基于DDS的幅度调制AM信号发生器设计(1)实验原理:幅度调制信号发生器是2005年大学生电子设计竞赛题中 的一个设计项目。

      (2)实验内容1:利用MATLAB和DSP Builder,根据图11-41,完成电路模 型设计,使产生图11-42的波形,最后在FPGA上硬件实现,并于示波器上 验证图11-42的波形3)实验内容2:将图11-41模型完全用VHDL表达出来(顶层设计可以用 原理图),直接用QuartusII实现硬件设计,仿真和FPGA实现,比较两种 方法的异同点(如输出频率的高低,资源利用等) 实 验 与 设 计 K KX康芯科技1-5 基于DDS的幅度调制AM信号发生器设计图11-41 AM发生器模型 实 验 与 设 计 K KX康芯科技1-5 基于DDS的幅度调制A。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.