好文档 - 专业文书写作范文服务资料分享网站

基于模拟电路的波形发生器的设计说明

天下 分享 时间: 加入收藏 我要投稿 点赞

件,并对已定制的ROM文件进行编译后仿真,仿真后所得到的波形时序如上图所示,当来一个时钟信号脉冲inclock立即从对应的输入信号address取出数据送往q输出。例如:当时钟信号inclock为高平且输入地址信号为00时,输出数据q正好对应FF(255),接着当时钟信号再为高电平时输入的地址信号为01,输出数据q为FE(254)依此不断有序的根据地址信号取出波形数据。 3.1.3 完成正弦信号发生器的顶层设计

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity singt is port( clk: in std_logic;

data: in std_logic_vector(11 downto 0); dout:out std_logic_vector(7 downto 0)); end;

architecture dacc of singt is component sindata

port(address:in std_logic_vector(5 downto 0); inclock:in std_logic;

q:out std_logic_vector(7 downto 0)); end component;

signal q1:std_logic_vector(5 downto 0); signal d: std_logic_vector(7 downto 0); signal fss:std_logic;

signal count12: std_logic_vector(11 downto 0); begin

com1: process(fss) begin

if fss'event and fss ='1' then q1<=q1+1; end if; end process;

com2:process(clk,data)

begin

if clk'event and clk='1' then

if count12=\else count12<=count12+1; fss<='0'; end if; end if;

end process com2;

u1: sindata port map(address=>q1,q=>dout,inclock=>clk); end;

这是正弦信号发生器源的顶层设计,其中调用了3.1.2节中的波形数据存储器

ROM模块,此顶层文件作为工程文件可存于d:\\lihui\\lpm.vhd中。 3.2 系统仿真

(1)运行仿真器并观察分析波形

按照第3.1.2中的方法分别对第3.1.3中的文件进行建立文件夹、输入设计项目VHDL代码、存盘、设计项目为当前文件夹、选择目标器件、启动编译、建立仿真波形文件步骤。再进行波形仿真、引脚锁定并编译、编程配置、硬件测试等过程。选择主菜单“MAX+plusⅡ”中的仿真器项“Simulator”单击弹出的仿真对话框中的“Start”按钮。图3.7即为仿真运算完成后的时序波形。

根据顶层文件的仿真波形可以从中看出。由外部时钟信号clk与频率控制信号

data共同控制dout波形数据的传送。clk所选的时钟输入信号为50Mhz,在高速

的clk的扫描频率输入情况下,当来一个上升沿触发,计数器count12计数器开始计数,data在给定的初始地址每次加1,一直加到部信号count12为0FE0H时,部信号Fss置1,count12不为0FE0H,信号Fss置0,由顶层的VHDL硬件描述语言可知,当Fss为上升沿时,从定制的部ROM里取一个数据送住引脚Dout作为信号输出。从上面仿真的波形结果可以看出。信号的输入输出的时序流程达到了VHDL描述目的。

图3.7 正弦波发生器仿真波形

(2)了解器件资源分配情况

选择左上角的“MAX+plusⅡ”主菜单,并单击其中的菜单项“Floorplan

Editor”,将弹出芯片资源编辑窗口,该窗口显示了目标器件部的逻辑资源分布情况

和设计项目对资源的利用情况。如图3.8所示。

图3.8 芯片资源编辑窗口

对于EPF10K10LC84-4,其中共有216个小柱,即逻辑阵列块LAB,每个LAB有8个小方块,每个小方块表示一个逻辑宏单元(Logic Cell),因此共有1728个LC(即LE)。带颜色的小方块表示已经被占用的资源,其数量恰好等于适配报告

中给出的数量。图3.8中稍大的方块(含8个小方块)表示器件中嵌的RAM单元EAB。共12个EAB含2048个存储位单元,总共24576个存储位。

(3)引脚琐定

以上的仿真测试正确无误,将设计编程下载到选定的目标器件中进行进一步的硬件测试,以便最终了解设计的正确性。首先选择主菜单MAX+plusⅡ,再单击菜单项“Floorplan Editor”进入图3.8所示的窗口,然后选择上方的“Layout”菜单,在下拉菜单中先消去“Full Screen”的对勾,在选择“Device View”,于是出现了器件引脚编辑窗口。再次进入“Layout”菜单,选其中的“Current

Assignments Floorplan”选项,在“Unassigned Nodes”列表框中将显示待

锁定的信号引脚名。锁定的方法是,对clk,用鼠标将clk拖到下面芯片的2号引脚上,然后松开鼠标。同样,dout0在39号引脚上;dout1在47号引脚上;dout2在48号引脚上;dout3在49号引脚上;dout4在50号引脚上; dout5在51号引脚上; dout6在52号引脚上; dout7在53号引脚上;引脚锁定表如表3.1所示:

表3.1 引脚锁定表

模 式 Input Input Input Input Input Input Input Input Input Input 信 号 Clk Data0 Data1 Data2 Data3 Data4 Data5 Data6 Data7 Data8 引脚号 2 5 6 7 8 9 10 11 16 17 模 式 Input Input Output Output Output Output Output Output Output Output 信 号 Data9 Data10 Dout0 Dout1 Dout2 Dout3 Dout4 Dout5 Dout6 Dout7 引脚号 19 21 39 47 48 49 50 51 52 53 在锁定引脚后再通过MAX+plusⅡ的编译器“Compiler”,对文件重新进行编译一次,将引脚信息编入下载文件中。

3.3 编程下载和测试

(1)选“MAX+plusⅡ”中的“Programmer”项。弹出Programmer窗口后,选“Options”项中的硬件设置项“Hardware Setup”,在其下拉窗口中选择“ByteBlaster(MV)”项,其窗口如图3.9右侧所示。

图3.9 设置编程下载方式

图3.10 通过JTAG口向FPGA下载SOF文件

基于模拟电路的波形发生器的设计说明

件,并对已定制的ROM文件进行编译后仿真,仿真后所得到的波形时序如上图所示,当来一个时钟信号脉冲inclock立即从对应的输入信号address取出数据送往q输出。例如:当时钟信号inclock为高平且输入地址信号为00时,输出数据q正好对应FF(255),接着当时钟信号再为高电平时输入的地址信号为01,输出数据q为FE(254)依此不断有序的根据地址信号取出波形数据。3.1.3完成正弦
推荐度:
点击下载文档文档为doc格式
8nkay6tmfg8iiwn479cv9uewu2s0a001e5p
领取福利

微信扫码领取福利

微信扫码分享