c语言三角波的mif文件,EDA课程设计报告-正弦波信号发生器的设计.doc
#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相关推荐
- MATLAB绘制正弦波、方波、三角波、锯齿波的mif文件
MATLAB绘制正弦波.方波.三角波.锯齿波的mif文件 % 对波形进行等间隔采样,以采样次数作为 ROM 存储 % 地址,将采集的波形幅值数据做为存储数据写入存储地址对应的存储空间 % 采样次数为 ...
- C语言查课系统的报告,C语言课程设计报告车辆违章查询系统doc
C语言课程设计报告车辆违章查询系统doc C 语言课程设计姓 名:刘 风学 号:8100612时 间:2011/6/11指导教师:王 薇题目:车辆违章查询系统 要求: 能够根据车辆的牌号,进行违章记录 ...
- 大二c语言数电课程设计,数电课程设计报告(数字钟的设计).doc
数电课程设计报告(数字钟的设计).doc 数电课程设计报告 设计背景与要求 设计要求 系统概述 2.1设计思想与方案选择 2.2各功能块的组成 2.3工作原理 第三章 单元电路设计与分析 3.1各单元 ...
- 单片机c语言三角波采样点,E题_江苏赛区_南京信息工程大学——放大器非线性失真分析装置 一等奖...
放大器非线性失真研究装置(E题) 摘 要 本设计是一个能产生非线性失真的晶体管放大器,**由两级共射放大电路以及一级推挽电路构成.可以通过调节放大器内各个电阻的阻值,来变更静态工作点,以及通过短路推挽 ...
- 施工管理系统C语言,《C语言课程设计报告-建筑工地信息管理系统》.doc
<C语言课程设计报告-建筑工地信息管理系统> C语言课程设计报告 班级:中国地质大学计算机学院192091班 姓名: 序号:192091-28(20091003872) 指导老师:时间:2 ...
- c语言课设报告时钟vc环境,C语言课程设计报告模拟时钟转动程序.doc
C语言课程设计报告模拟时钟转动程序 PAGE 课程设计报告 题 目 课 程 名 称 结构化程序设计课程设计 院 部 名 称 专 业 班 级 学 生 姓 名 王蕾 学 号 课程设计地点 课程设计学时 指 ...
- 用c语言编写一个酒店点菜菜单,C课程设计报告酒店点菜管理系统设计.doc
C课程设计报告酒店点菜管理系统设计 PAGE C++面向对象课程设计报告 院(系): 专业: 学生姓名: 班级 学号: 题目: 酒店点菜管理系统设计_______ 起迄日期: _ 设计地点: 指 导 ...
- c语言银行卡管理系统程序设计报告,C语言课程设计报告(银行账户信息管理系统).doc...
新疆大学学生课程设计论文 摘要 PAGE I 银行账户管理系统C语言程序设计 摘 要 银行账户管理系统是针对银行账户的日常管理而设计,操作方便而且界面简洁,使用较为简单的C语言作为编程语言,采用软件工 ...
- 会员计费系统c语言_c语言课程设计报告会员卡计费系统源代码.doc
word格式 整理版 学习参考 #include //编译预处理指令,引入头文件 #include #include #include #define MAX 10 //自定义符号常量 #define ...
- 数据结构员工通讯录管理系统 C语言,数据结构课程设计报告单位员工通讯录管理系统.doc...
班级:计科112 学号: 201100814203 姓名:冯贵阳 PAGE PAGE 42 数 据 结 构 课 程 设 计 实 验 报 告 目录 1.单位员工通讯录管理系统(线性表的应用)---- - ...
最新文章
- java字符串分割性能_String字符串性能优化的几种方案
- 加拿大两院院士裴健:搜索皆智能​,智能皆搜索
- keil debug如何在watch直接修改变量值_printf系列教程03_SWO打印输出配置,基于Keil『Debug(printf)Viewer』...
- ajax-典型应用-验证用户名
- 几何着色器与细分(镶嵌)着色器
- Spring中的InitializingBean接口
- u盘pe安装深度linux系统教程,深度U盘装机大师_深度u盘启动盘安装深度系统
- python 获得时间戳_Python 获取时间戳
- Android 获取屏幕高度、宽度
- python平方数_python数字平方
- 黑盒测试AND白盒测试
- 【人工智能】人工智能如何影响社会经济:关于近期文献的一个综述
- 工业机器人cloos_工业机器人的技术发展及其应用
- main()打成mian()的后果,切记小心
- Google Play APK 下载
- python 经纬度 地址批量转换
- 遇到UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xa3 in position 4: invalid start byte的几种处理方法
- photoshop图像合成教程之将人物和风景合成一张图片
- Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)
- 【hive】数据倾斜-大表小表join优化mapjoin
热门文章
- 企业级飞速低代码开发平台 | 产品介绍 | APass平台 | 全场景适用
- 【广义S变换】一维广义S变换对非平稳信号处理的matlab仿真
- stm32采集交流电压信号_基于STM32的交流电压检测
- 软件项目进度控制表(自制)
- android高通camera驱动调试,高通Camera模块驱动指南资料
- nat123内网穿透
- spring html导出excel文件,springboot2.1.8使用poi导出数据生成excel(.xlsx)文件
- java初级开发面试题
- 让SQL用户快速进入Hadoop大数据时代 —— Transwarp Inceptor是怎样炼成的
- 第二章-信源与信息熵(一)