




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Quartus2组件DSP_builder设计DDS信号发生器说明:Quartus2中DSP_builder组件建立了Quartus2与Matlab的无缝链接,这样极大的有利于FPGA在信号处理中的应用,本次课题旨在通过建立一个信号发生器来说明DSP_builder的强大之处。传统的DDS信号发生器的设计相对比较复杂(包括相位累加器,地址查找表,D/A),通过传统的编程思想,会比较复杂,DSP_builder则是通过simulink中的Altera库,直接构建DDS模型,再通过signal complier生成VHDL语言以及仿真所用的测试脚本(testbench文件),非常方便,并通过simulink和FPGA的仿真工具Modelsim_Atera一起做了对比,两者吻合,达到了预期效果。 1.在Simulink中构建DDS模型 2.Simulink下的仿真如图所示:3.RTL级仿真(modelsim仿真):4.RTL级视图附:.vhl代码- sinwafe_GN.vhdlibrary IEEE;use IEEE.std_logic_1164.all;use IEEE.numeric_std.all;entity sinwafe_GN isport (Output : out std_logic_vector(7 downto 0); - Output.wireInput : in std_logic_vector(0 downto 0) := (others = 0); - Input.wireClock : in std_logic := 0; - Clock.clkaclr : in std_logic := 0 - .reset_n);end entity sinwafe_GN;architecture rtl of sinwafe_GN iscomponent alt_dspbuilder_clock_GNF343OQUJ isport (aclr : in std_logic := X; - resetaclr_n : in std_logic := X; - reset_naclr_out : out std_logic; - resetclock : in std_logic := X; - clkclock_out : out std_logic - clk);end component alt_dspbuilder_clock_GNF343OQUJ;component alt_dspbuilder_port_GNXAOKDYKC isport (input : in std_logic_vector(0 downto 0) := (others = X); - wireoutput : out std_logic_vector(0 downto 0) - wire);end component alt_dspbuilder_port_GNXAOKDYKC;component alt_dspbuilder_lut_GNV7OH7CRC isgeneric (use_lpm : natural := 0;reg_addr : natural := 0;reg_data : natural := 0;family : string := STRATIX;ADDRWIDTH : positive := 8;DATAWIDTH : positive := 8;RAMTYPE : string := AUTO);port (aclr : in std_logic := X; - clkclock : in std_logic := X; - clkena : in std_logic := X; - wireInput : in std_logic_vector(ADDRWIDTH-1 downto 0) := (others = X); - wireOutput : out std_logic_vector(DATAWIDTH-1 downto 0); - wiresclr : in std_logic := X - wire);end component alt_dspbuilder_lut_GNV7OH7CRC;component alt_dspbuilder_gnd_GN isport (output : out std_logic - wire);end component alt_dspbuilder_gnd_GN;component alt_dspbuilder_vcc_GN isport (output : out std_logic - wire);end component alt_dspbuilder_vcc_GN;component alt_dspbuilder_product_GNSX3UCWXH isgeneric (pipeline : natural := 0;UseDedicatedMult : natural := 0;lpm : natural := 0;MaskValue : string := 1;Signed : natural := 0;width : natural := 8);port (aclr : in std_logic := X; - clkclock : in std_logic := X; - clkdataa : in std_logic_vector(width-1 downto 0) := (others = X); - wiredatab : in std_logic_vector(width-1 downto 0) := (others = X); - wireena : in std_logic := X; - wireresult : out std_logic_vector(width*2-1 downto 0); - wireuser_aclr : in std_logic := X - wire);end component alt_dspbuilder_product_GNSX3UCWXH;component alt_dspbuilder_delay_GN53FGQEY3 isgeneric (width : positive := 8;delay : positive := 1;ClockPhase : string := 1;use_init : natural := 0;BitPattern : string := 00000001);port (aclr : in std_logic := X; - clkclock : in std_logic := X; - clkena : in std_logic := X; - wireinput : in std_logic_vector(width-1 downto 0) := (others = X); - wireoutput : out std_logic_vector(width-1 downto 0); - wiresclr : in std_logic := X - wire);end component alt_dspbuilder_delay_GN53FGQEY3;component alt_dspbuilder_inc_dec_GNM4UTC62W isgeneric (lpm : natural := 0;MaskValue : string := 1;direction : natural := 0;Unsigned : natural := 0;StartValue : string := 00000000;OutputWidth : integer := 8);port (aclr : in std_logic := X; - clkclock : in std_logic := X; - clkena : in std_logic := X; - wireresult : out std_logic_vector(OutputWidth-1 downto 0); - wiresclr : in std_logic := X - wire);end component alt_dspbuilder_inc_dec_GNM4UTC62W;component alt_dspbuilder_port_GNA5S4SQDN isport (input : in std_logic_vector(7 downto 0) := (others = X); - wireoutput : out std_logic_vector(7 downto 0) - wire);end component alt_dspbuilder_port_GNA5S4SQDN;component alt_dspbuilder_cast_GNQDULLOC6 isgeneric (saturate : natural := 0;round : natural := 0);port (input : in std_logic_vector(0 downto 0) := (others = X); - wireoutput : out std_logic_vector(7 downto 0) - wire);end component alt_dspbuilder_cast_GNQDULLOC6;component alt_dspbuilder_cast_GNXB66IQUO isgeneric (saturate : natural := 0;round : natural := 0);port (input : in std_logic_vector(15 downto 0) := (others = X); - wireoutput : out std_logic_vector(7 downto 0) - wire);end component alt_dspbuilder_cast_GNXB66IQUO;component alt_dspbuilder_cast_GNA72OVCRC isgeneric (saturate : natural := 0;round : natural := 0);port (input : in std_logic_vector(5 downto 0) := (others = X); - wireoutput : out std_logic_vector(5 downto 0) - wire);end component alt_dspbuilder_cast_GNA72OVCRC;signal sin_lutsclrgnd_output_wire : std_logic; - Sin_LUTsclrGND:output - Sin_LUT:sclrsignal sin_lutenavcc_output_wire : std_logic; - Sin_LUTenaVCC:output - Sin_LUT:enasignal productuser_aclrgnd_output_wire : std_logic; - Productuser_aclrGND:output - Product:user_aclrsignal productenavcc_output_wire : std_logic; - ProductenaVCC:output - Product:enasignal delaysclrgnd_output_wire : std_logic; - DelaysclrGND:output - Delay:sclrsignal delayenavcc_output_wire : std_logic; - DelayenaVCC:output - Delay:enasignal inccountsclrgnd_output_wire : std_logic; - IncCountsclrGND:output - IncCount:sclrsignal inccountenavcc_output_wire : std_logic; - IncCountenaVCC:output - IncCount:enasignal delay_output_wire : std_logic_vector(7 downto 0); - Delay:output - Product:dataasignal sin_lut_output_wire : std_logic_vector(7 downto 0); - Sin_LUT:Output - Delay:inputsignal input_0_output_wire : std_logic_vector(0 downto 0); - Input_0:output - cast0:inputsignal cast0_output_wire : std_logic_vector(7 downto 0); - cast0:output - Product:databsignal product_result_wire : std_logic_vector(15 downto 0); - Product:result - cast1:inputsignal cast1_output_wire : std_logic_vector(7 downto 0); - cast1:output - Output_0:inputsignal inccount_result_wire : std_logic_vector(5 downto 0); - IncCount:result - cast2:inputsignal cast2_output_wire : std_logic_vector(5 downto 0); - cast2:output - Sin_LUT:Inputsignal clock_0_clock_output_reset : std_logic; - Clock_0:aclr_out - Delay:aclr, IncCount:aclr, Product:aclr, Sin_LUT:aclrsignal clock_0_clock_output_clk : std_logic; - Clock_0:clock_out - Delay:clock, IncCount:clock, Product:clock, Sin_LUT:clockbeginclock_0 : component alt_dspbuilder_clock_GNF343OQUJport map (clock_out = clock_0_clock_output_clk, - clock_output.clkaclr_out = clock_0_clock_output_reset, - .resetclock = Clock, - clock.clkaclr_n = aclr - .reset_n);input_0 : component alt_dspbuilder_port_GNXAOKDYKCport map (input = Input, - input.wireoutput = input_0_output_wire - output.wire);sin_lut : component alt_dspbuilder_lut_GNV7OH7CRCgeneric map (use_lpm = 1,reg_addr = 1,reg_data = 0,family = Cyclone II,ADDRWIDTH = 6,DATAWIDTH = 8,RAMTYPE = AUTO)port map (clock = clock_0_clock_output_clk, - clock_aclr.clkaclr = clock_0_clock_output_reset, - .resetInput = cast2_output_wire, - Input.wireOutput = sin_lut_output_wire, - Output.wiresclr = sin_lutsclrgnd_output_wire, - sclr.wireena = sin_lutenavcc_output_wire - ena.wire);sin_lutsclrgnd : component alt_dspbuilder_gnd_GNport map (output = sin_lutsclrgnd_output_wire - output.wire);sin_lutenavcc : component alt_dspbuilder_vcc_GNport map (output = sin_lutenavcc_output_wire - output.wire);product : component alt_dspbuilder_product_GNSX3UCWXHgeneric map (pipeline = 0,UseDedicatedMult = 0,lpm = 0,MaskValue = 1,Signed = 1,width = 8)port map (clock = clock_0_clock_output_clk, - clock_aclr.clkaclr = clock_0_clock_output_reset, - .resetdataa = delay_output_wire, - dataa.wiredatab = cast0_output_wire, - datab.wireresult = product_result_wire, - result.wireuser_aclr = productuser_aclrgnd_output_wire, - user_aclr.wireena = productenavcc_output_wire - ena.wire);productuser_aclrgnd : component alt_dspbuilder_gnd_GNport map (output = productuser_aclrgnd_output_wire - output.wire);productenavcc : component alt_dspbuilder_vcc_GNport map (output = productenavcc_output_wire - output.wire);delay : component alt_dspbuilder_delay_GN53FGQEY3generic map (width = 8,delay = 1,ClockPhase = 1,use_init = 0,BitPattern = 00000001)port map (input = sin_lut_output_wire, - input.wireclock = clock_0_clock_output_clk, - clock_aclr.clkaclr = clock_0_clock_output_reset, - .resetoutput = delay_output_wire, - output.wiresclr = delaysclrgnd_output_wire, - sclr.wireena = delayenavcc_output_wire - ena.wire);delaysclrgnd : component alt_dspbuilder_gnd_GNport map (output = delaysclrgnd_output_wire - output.wire);delayenavcc : component alt_dspbuilder_vcc_GNport map (output = delayenavcc_output_wire - output.wire);inccount : component alt_dspbuilder_inc_dec_GNM4UTC62Wgeneric map (lpm = 0,MaskValue = 1,direction = 0,Unsigned = 0,StartValue = 000000,OutputWidth = 6)port map (clock = clock_0_clock_output_clk, - clock_aclr.clkaclr = clock_0_clock_output_reset, - .resetresult = inccount_result_wire, - result.wiresclr = inccountsclrgnd_output_wire,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 古树保护培训课件
- 培训师如何做:授课呈现技巧与培训方法
- 《医疗机构管理实务》课件
- 起重安全警示教育培训
- 《精神疾病识别与干预》课件
- 车库出租协议和租赁合同
- 《深海利器公司介绍》课件
- 车辆抵押借款协议合同书
- 完善劳动合同管理的实施方案计划
- 浙江婚前协议书
- 教学案例 初中地理教学案例
- 应用文写作之简报
- YY/T 1173-2010聚合酶链反应分析仪
- GB/T 12236-2008石油、化工及相关工业用的钢制旋启式止回阀
- 民法典学习解读课件
- 部编版六年级语文毕业总复习课件
- 护理查房-慢阻肺课件
- 液压举升工作平台毕业设计论文
- 20kV及以下配网工程建设预算编制与计算规定-
- 人工肝血浆置换术知情同意书
- (完整版)高中化学必修2有机化合物试题.doc
评论
0/150
提交评论