#includemain()

{

int i;

float s;

for(i=0;i<256;i++)

{

s=i;

printf("%d :%d;\n",i,s);

}

}

以sj.c保存。

其次,把上述程序编译后,会生成EXE文件,在DOS命令行下分别执行以下命令:

zx > zx.mif;

sj > sj.mif;

将生成的*.mif 文件,再加上.mif文件的头部说明即可。

.mif文件的头部说明如下所示:

WIDTH=8;

DEPTH=256;

ADDRESS_RADIX=DEC;

DATA_RADIX=DEC;

CONTENT BEGIN

……

……(数据略去)

END;

2、 在设计信号发生器前,必须首先完成存放波形数据ROM的设计。设计步骤如下:

1) 打开QUARTUS Ⅱ。在files菜单中选择new产生一个对话框,选择Block Diagram/Schematic File 项,会生成一个*.bdf文件,双击文件空白处,

跳出symbol窗口,在改窗口下选择megafunctions>storage>lpm_rom。

2) 在跳出的 MegaWizard Plug-In Manager中选

择VHDL,路径保存在D:\chengxv\中

3) 在parameter settings 窗口中,选择currently selected device family :cyclone.选择ROM控制线、地址线和数据线。在弹出的对话框中选择地址线位宽和ROM中数据数分别为8和64;选择地址锁存控制信号dual clock。在对话框的“What should the RAM…”栏选择默认的Auto。

4) 单击NEXT,将此界面数据如图设置

5) 单击Next按钮,选择BROWSE,选择利用C做成的MIF文件,将此模块命名为ROM0,再单击Finish 按钮后完成ROM0定制。

6) 打开此文件可以看到其中调用初始化数据文件的语句为:init_file => ".mif"。最后生成的ROM0元件文件如源代码1所示.

六、 源代码:

1)、源代码1如下所示:

LIBRARY ieee;

USE ieee.std_logic_1164.all;

LIBRARY altera_mf;

USE altera_mf.all;

ENTITY ROM0 IS

PORT

(

address: IN STD_LOGIC_VECTOR (5 DOWNTO 0);

inclock: IN STD_LOGIC ;

q: OUT STD_LOGIC_VECTOR (7 DOWNTO 0)

);

END ROM0;

ARCHITECTURE SYN OF ROM0 IS

SIGNAL sub_wire0: STD_LOGIC_VECTOR (7 DOWNTO 0);

COMPONENT altsyncram

GENERIC (

address_aclr_a: STRING;

init_file: STRING;

intended_device_family: STRING;

lpm_hint: STRING;

lpm_type: STRING;

numwords_a: NATURAL;

operation_mode: STRING;

outdata_aclr_a: STRING;

outdata_reg_a: STRING;

widthad_a: NATURAL;

width_a: NATURAL;

width_byteena_a: NATURAL

);

PORT (

clock0: IN STD_LOGIC ;

address_a: IN STD_LOGIC_VECTOR (5 DOWNTO 0);

q_a: OUT STD_LOGIC_VECTOR (7 DOWNTO 0)

);

END COMPONENT;

BEGIN

q <= sub_wire0(7 DOWNTO 0);

altsyncram_component : altsyncram

GENERIC MAP (

address_aclr_a => "NONE",

init_file => "../../ad.mif",

intended_device_family => "Cyclone",

lpm_hint => "ENABLE_RUNTIME_MOD=NO",

lpm_type => "altsyncram",

numwords_a => 64,

operation_mode => "ROM",

outdata_aclr_a => "NONE",

outdata_reg_a => "UNREGISTERED",

widthad_a => 6,

width_a => 8,

width_byteena_a => 1

)

PORT MAP (

clock0 => inclock,

address_a => address,

q_a => sub_wire0

);

END SYN;

2)、顶层设计代码:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY ADC IS

PORT ( CLK:in STD_LOGIC;

DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);

key:in STD_LOGIC

);

END ;

ARCHITECTURE DACC OF ADC IS

COMPONENT ROM0

PORT(address: IN STD_LOGIC_VECTOR(7 DOWNTO 0);

inclock: IN STD_LOGIC;

q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)

) ;

END COMPONENT;

COMPONENT ROM1

PORT(address: IN STD_LOGIC_VECTOR(7 DOWNTO 0);

inclock: IN STD_LOGIC;

q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)

) ;

END COMPONENT;

SIGNAL CLK1:STD_LOGIC;

SIGNAL Q0:STD_LOGIC_VECTOR(3 DOWNTO 0);

SIGNAL Q1:STD_LOGIC_VECTOR(7 DOWNTO 0);

SIGNAL Q2:STD_LOGIC_VECTOR(7 DOWNTO 0);

SIGNAL Q3:STD_LOGIC_VECTOR(7 DOWNTO 0);

BEGIN

PROCESS(CLK)

BEGIN

IF CLK'event and CLK='1'

THEN

IF Q0Q1,q=>Q2,inclock=>CLK);

u1:ROM0 PORT MAP(address=>Q1,q=>Q3,inclock=>CLK);

process(key)

begin

if key='1' then DOUT<=Q2;

else DOUT<=Q3;

END IF;

END PROCESS;

END ;

3)为此顶层设计创建一项工程,工程名和实体名都是adc。

4)全程编译一次后进入时序仿真测试。由波形可见,随着每一个时钟上升沿的到来,输出端口将正弦波数据依次输出。

5)硬件测试。选择电路模式5,则时钟CLK接实验箱的clock0 。将dout(0)…dout(7)分别锁定于实验系统上与DAC0832相接的I/O口:PIO24、PIO25、PIO26、PIO27、PIO28、PIO29、PIO30、PIO31。编译下载adc.sof后,打开电压开关,将CLK的时钟通过实验箱上clock0的跳线选择频率为12MHZ,再将示波器接于实验箱的两个挂钩上就能观察波形的输出情况了。

七、 仿真波形图:

八、 引脚锁定:

九、 设计结果:

Clock0=12MHZ,输出频率为:f=47KHZ,周期为:T=21us

十、 设计体会:

在本次设计的过程中,我在编译过程中出现问题,第一个问题出在建立.mif格式文件中,没有将生成的sdata.mif文件加上.mif文件的头部说明。.mif文件的头部说明如下所示:

WIDTH=8;

DEPTH=1024;

ADDRESS_RADIX=DEC;

DATA_RADIX=DEC;

CONTENT BEGIN

0:127;

1:130;

……(数据略去)

1023:124;

END;

18

c语言三角波的mif文件,EDA课程设计报告-正弦波信号发生器的设计.doc相关推荐

  1. MATLAB绘制正弦波、方波、三角波、锯齿波的mif文件

    MATLAB绘制正弦波.方波.三角波.锯齿波的mif文件 % 对波形进行等间隔采样,以采样次数作为 ROM 存储 % 地址,将采集的波形幅值数据做为存储数据写入存储地址对应的存储空间 % 采样次数为 ...

  2. C语言查课系统的报告,C语言课程设计报告车辆违章查询系统doc

    C语言课程设计报告车辆违章查询系统doc C 语言课程设计姓 名:刘 风学 号:8100612时 间:2011/6/11指导教师:王 薇题目:车辆违章查询系统 要求: 能够根据车辆的牌号,进行违章记录 ...

  3. 大二c语言数电课程设计,数电课程设计报告(数字钟的设计).doc

    数电课程设计报告(数字钟的设计).doc 数电课程设计报告 设计背景与要求 设计要求 系统概述 2.1设计思想与方案选择 2.2各功能块的组成 2.3工作原理 第三章 单元电路设计与分析 3.1各单元 ...

  4. 单片机c语言三角波采样点,E题_江苏赛区_南京信息工程大学——放大器非线性失真分析装置 一等奖...

    放大器非线性失真研究装置(E题) 摘 要 本设计是一个能产生非线性失真的晶体管放大器,**由两级共射放大电路以及一级推挽电路构成.可以通过调节放大器内各个电阻的阻值,来变更静态工作点,以及通过短路推挽 ...

  5. 施工管理系统C语言,《C语言课程设计报告-建筑工地信息管理系统》.doc

    <C语言课程设计报告-建筑工地信息管理系统> C语言课程设计报告 班级:中国地质大学计算机学院192091班 姓名: 序号:192091-28(20091003872) 指导老师:时间:2 ...

  6. c语言课设报告时钟vc环境,C语言课程设计报告模拟时钟转动程序.doc

    C语言课程设计报告模拟时钟转动程序 PAGE 课程设计报告 题 目 课 程 名 称 结构化程序设计课程设计 院 部 名 称 专 业 班 级 学 生 姓 名 王蕾 学 号 课程设计地点 课程设计学时 指 ...

  7. 用c语言编写一个酒店点菜菜单,C课程设计报告酒店点菜管理系统设计.doc

    C课程设计报告酒店点菜管理系统设计 PAGE C++面向对象课程设计报告 院(系): 专业: 学生姓名: 班级 学号: 题目: 酒店点菜管理系统设计_______ 起迄日期: _ 设计地点: 指 导 ...

  8. c语言银行卡管理系统程序设计报告,C语言课程设计报告(银行账户信息管理系统).doc...

    新疆大学学生课程设计论文 摘要 PAGE I 银行账户管理系统C语言程序设计 摘 要 银行账户管理系统是针对银行账户的日常管理而设计,操作方便而且界面简洁,使用较为简单的C语言作为编程语言,采用软件工 ...

  9. 会员计费系统c语言_c语言课程设计报告会员卡计费系统源代码.doc

    word格式 整理版 学习参考 #include //编译预处理指令,引入头文件 #include #include #include #define MAX 10 //自定义符号常量 #define ...

  10. 数据结构员工通讯录管理系统 C语言,数据结构课程设计报告单位员工通讯录管理系统.doc...

    班级:计科112 学号: 201100814203 姓名:冯贵阳 PAGE PAGE 42 数 据 结 构 课 程 设 计 实 验 报 告 目录 1.单位员工通讯录管理系统(线性表的应用)---- - ...

最新文章

  1. java字符串分割性能_String字符串性能优化的几种方案
  2. 加拿大两院院士裴健:搜索皆智能​,智能皆搜索
  3. keil debug如何在watch直接修改变量值_printf系列教程03_SWO打印输出配置,基于Keil『Debug(printf)Viewer』...
  4. ajax-典型应用-验证用户名
  5. 几何着色器与细分(镶嵌)着色器
  6. Spring中的InitializingBean接口
  7. u盘pe安装深度linux系统教程,深度U盘装机大师_深度u盘启动盘安装深度系统
  8. python 获得时间戳_Python 获取时间戳
  9. Android 获取屏幕高度、宽度
  10. python平方数_python数字平方
  11. 黑盒测试AND白盒测试
  12. 【人工智能】人工智能如何影响社会经济:关于近期文献的一个综述
  13. 工业机器人cloos_工业机器人的技术发展及其应用
  14. main()打成mian()的后果,切记小心
  15. Google Play APK 下载
  16. python 经纬度 地址批量转换
  17. 遇到UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xa3 in position 4: invalid start byte的几种处理方法
  18. photoshop图像合成教程之将人物和风景合成一张图片
  19. Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)
  20. 【hive】数据倾斜-大表小表join优化mapjoin

热门文章

  1. 企业级飞速低代码开发平台 | 产品介绍 | APass平台 | 全场景适用
  2. 【广义S变换】一维广义S变换对非平稳信号处理的matlab仿真
  3. stm32采集交流电压信号_基于STM32的交流电压检测
  4. 软件项目进度控制表(自制)
  5. android高通camera驱动调试,高通Camera模块驱动指南资料
  6. nat123内网穿透
  7. spring html导出excel文件,springboot2.1.8使用poi导出数据生成excel(.xlsx)文件
  8. java初级开发面试题
  9. 让SQL用户快速进入Hadoop大数据时代 —— Transwarp Inceptor是怎样炼成的
  10. 第二章-信源与信息熵(一)