




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.基于FPGA数字频率计的SOPC实现课程名称:现代电子技术综合实验:指导教师:**:摘要本文介绍了一种数字频率计的SOPC实现方法。该设计采用MC8051软核作为SOPC系统的控制核心,使用硬件描述语言VHDL在开发平台ISE上搭建MC8051的外围电路,共同构建SOPC系统。在进展综合、布局布线、生成bit文件、配置实验电路板上的目标器件后,联合使用KeilC51进展软件局部的设计与在线仿真,最后在FPGA实验电路板上成功验证了设计的功能。经测量数据与真实数据比拟,在10-5误差*围内,该频率计能测量频率在0.5Hz以上的信号。关键词:MC8051,SOPC,FPGA,数字频率计一、数字频率计的实现方式及其误差1.1概述在电子技术领域,频率是一个最根本的参数,频率与其它许多参量的测量方案、测量结果都有十分密切的关系。因此,频率的测量非常重要。在电子实验室中,测量频率的仪器是最重要的仪器之一。目前,绝大多数实验室使用计数式数字频率计测量频率。利用计数式数字频率计测量频率具有精度高、使用方便、测量迅速等一系列突出优点,故已成为近代频率测量的重要手段。目前频率测量主要有3种实现方法:(1)测频法。测频法是指在时基信号的几个周期内计算被测信号的个数,最后得出被测信号的频率。该测量在低频段的相对测量误差较大。(2)测周法。测周法是指在被测信号的几个周期内计算时基信号的个数,最后得出被测信号的频率。这种方法在高频段相对误差较大,增大基准信号频率可以提高测量精度。(3)等精度法。等精度法是指在与被测信号同步的闸门时间内,分别计算被测信号和时基信号的个数,最后通过被测信号与时基信号的个数的相比,再乘以时基信号的频率算出被测信号频率。该方法可以在整个工作频段可以得到一样的相对精度,且测量*围更大、更准确。1.2三种频率测量方法误差的简要分析(1)测频法:测频法的公式为:f=N/TN为1次闸门时间内计数器计得被测信号的脉冲数,T为闸门时间的长度。由于N存在±1误差,则测频法的相对误差:±1/N绝对误差:±1/T即对于测频法,被测信号频率越高或者闸门时间越长,N值就越大,误差就越小。闸门时间固定时,绝对误差固定。(2)测周法:测周法的公式为:f=F/NF为基准时钟的频率,N为被测信号单周期内计得基准时钟的脉冲数。由于N存在±1的误差,测周法的相对误差:(-1/(N+1),1/(N-1))绝对误差:(-F/N(N+1),F/N(N-1))即对于测周法,被测信号频率越低,基准时钟频率越高,N值越大,误差越小。(3)等精度法:等精度法的公式为:f=(N1/N2)*FN1、N2分别为与被测信号同步的闸门时间内测得被测信号脉冲数、时基信号脉冲数,F为时基信号频率。由于闸门信号与被侧信号同步,N1无量化误差。N2存在±1误差。相对误差:(-1/(N2+1),1/(N2-1))绝对误差:(-N1F/N2(N2+1),N1F/N2(N2-1))即时基信号频率越高,N2越大,则误差就越小。特别当N1=1时,等精度法变为测周法。二、数字频率计的设计与实现2.1测量方式与实现方式的选择本次设计采用等精度法,由于等精度法设计到乘除运算,如果直接用数字电路搭建乘除电路,十分复杂,但MC8051进展乘除十分方便,而且编程容易。所以考虑采用SOPC的实现方式来设计频率计。2.2硬件系统的设计2.2.1实验所用开发板简介本次实验所用的电路为EECFPGA核心板,板上包含一块TQ144封装的*c3s250eFPGA芯片,使用50MHz有源晶振作时钟输入,含有4个按键,一个8位拨码开关,8位LED,8位数码管,提供外部时钟输入引脚,足够满足本次频率计的设计需要。图1给出了开发板上FPGA的引脚分配,可以得到引脚约束信息,以供开发时使用。图1管脚分配2.2.2硬件系统的整体框架由等精度测量频率的原理可知,频率测量功能的实现需要时钟管理模块、闸门电路、基准时钟、输入信号、两个计数器以及MC8051。模块之间的互联如图2所示。图2数字电路框图基于上面给出的数字电路框图,各个模块的功能如下:1)DCM时钟管理模块*ilin*公司的FPGA中提供了一种特殊的时钟管理模块,可以对时钟进展倍频与分频。所用芯片上单个DCM能提供两路输出,分别用作MC8051的时钟和测频电路的基准时钟。因为对单片机在线调试的需求,单片机的时钟固定为18MHz。由之前的理论分析,基准时钟频率更高时,量化误差导致的频率误差会降低,所以基准时钟使用50MHz,所以该模块的功能是对输入的晶振信号进展分频产生一个18MHz和50MHZ的方波信号。2)MC8051软核系统整体的处理、控制核心。通过感应反应回的闸门信号判断何时进展数据的传输,在正确传输数据后并输出高电平的清零信号〔clr〕使32位计数器清零,在短暂的延时后,使clr变成低电平,以使32位计数器在下次闸门信号到来时做好计数准备。进展数据的乘除运算,判断频率的单位〔Hz、KHz、MHz〕并输出有效的低电平信号使相应的指示灯点亮,别离频率各个位的数字〔包括小数点的判断〕,然后通过先送片选后送段选实现数码管的动态显示。3)分频器通过对时钟管理器送来的50MHz方波信号进展分频得到一个0.25Hz的方波信号,并送入D触发器。4)闸门信号同步电路使用D触发器产生与被测信号同步的闸门信号,并分别送到两个32位计数器的使能端和MC8051单片机内部。在闸门高电平期间,计数器能正常计数。单片机能通过对闸门信号感应的做出正确的反应。5〕32位计数器在同步闸门信号的使能下,计算被测信号、时基信号的个数。6〕64选8多路选择器通过单片输出的选择信号选择送哪8位数据。2.2.3引脚分配以及下载将上述元件按照框图用top.vhd文件连接,分配引脚并将无用的管脚拉高后,进展综合、布局布线,生成对FPGA进展配置的bit文件,使用ISE里的iMPACT工具下载至开发板上的FPGA内即可。以上就是数字电路硬件局部的工作。2.3软件系统的设计软件局部应该包括清零信号的控制、数据的处理、显示控制三局部。图3是本次设计程序局部的流程图。图3程序流程图一、程序功能说明:1〕在启动程序后,进展信号判断。假设switchsignal==0&cal_flag==0,单片机输出多路选择器选择信号,将数据接收进来,将cal_flag、clr赋值为1,实现32位计数器的清零。在延时1ms后,将clr赋值为0,让32位计数器做好下次计数准备。然后进展数据的计算,算出被测信号的频率,并且判断频率的单位,使相应的指示灯点亮。在得到频率后别离各个位的数字〔同时判断小数点的位数〕。最后转到显示程序。假设switchsignal==1,将cal_flag赋值为0,直接转到显示程序。2〕在显示程序中,先送位选码后送段选码,延时1ms,接着送下位数实现数码管的动态显示。在送完所以数后。回到信号判断处以实现程序的无限循环。二、MC8051IP核中运行的软件应该实现的功能如下:1)闸门信号的接收与计数器clr信号的管理根据输入的同步闸门信号,处理好接收多路选择器的送数、32位计数器的清零、计数器计数前的再次准备三者的前后时序关系。2)数据计算对采集来的数据进展处理。通过对两位数的乘除运算得到被测信号的频率,判断被测频率的单位并送出相应有效的LED指示灯点亮信号,别离各个位的数字,包括小数点位置确实定。3)溢出判断再计算出频率后,当频率大于100MHz时,判断溢出,并送出有效的低电平信号使overflow指示灯点亮。4)结果显示将计算的结果显示出来,分别包括MHz、KHz、Hz三种单位以及溢出的指示LED,以及在数码管上显示数字以及小数点的控制。通过位选码选位后段选码送显示,以动态显示的方法实现。程序编写好之后,通过Keil进展编译、生成可执行文件,通过在线仿真验证设计功能。三、数据分析3.1数据分析完成整体频率计的制作之后,使用信号源进展测试,测试结果如表1所示实际频率/Hz0.51.052080100300测量频率/HZ0.499980.999984.9999819.999880.000099.9999300.000相对误差/10-5-4-2-0.4-10-10实际频率/KHz1.138906.2810016.420029.4260153.445712.360900测量频率/KHZ1.138886.2809416.419429.4252153.440712.340900.000相对误差/10-5-1.75608-0.9955262-3.65408-2.71868-3.2585-2.807570实际频率/MHz1.0234.06.2531016.23025.62429.9999测量频率/MHZ1.022903.999986.2527610.000016.229425.623929.9990相对误差/10-5-9.77517-0.5-3.838160-3.6968-0.3902-3.00001表1频率分析表由表1可知,测量数据的相对误差的量度都在10-5上,所以该设计方案满足要求,且测量精度很高,测量*围很广,具有很大的实用价值。3.2误差来源分析石英振荡器带来的误差本次所用的石英振荡器输出的频率虽然是50MHz,但是这震荡频率也会有轻微的波动,在10-6误差*围内,所以也会为我们数据的测量带来一定的误差。3.2.2浮点型运算的舍入误差Keil编译器能编译float型变量,float型变量是以8为指数、23位尾数的形式存储。即其单次计算的相对误差为±2-23=±1.192*10-8,分析此次使用的C程序,共使用了三次浮点型计算(包含两次强制类型转换与一次除法),带来的相对误差应小于±3.576*10-8。四、实验结论及总结从实测误差来看,相对误差大约为0.004%,同时在极低或极高频率上的相对误差规律不同,远超过了理论上由量化误差带来的频率误差和浮点运算的舍入误差的总和,推测主要误差是由石英晶振与测试用信号源频率的相对误差带来。经查阅资料,标定此次频率计使用的信号源的频率准确度为±〔50ppm+1μHz〕,忽略1μHz的绝对误差后,相对误差±50ppm,即±0.005%,远大于以上两种误差带来的相对误差。信号源输出频率的误差已经与比测试数据误差*围更大,可以得出结论:测试数据符合理论误差的分析。本次实验设计了基于SOPC系统的数字频率计,并在实验板上实现。最终完成的频率计拥有0.5Hz~30MHz的量程,并在整个量程之内都能获得10-5*围的误差。同时,受实验条件的限制,无法对其进展更加准确的标定,如果使用更加准确的仪器进展标定,可以继续使精度提高。通过此次频率计的设计实验,对频率的测量方法有了更深的认识。此外,还学习了VHDL硬件描述语言与51单片机C语言开发的相关知识。通过对于整体SOPC系统的设计与对FPGA的编程实现,培养了一定的对于数字系统的整体设计的能力与思想。五、参考文献[1].姜立东.VHDL语言程序设计及应用(第二版).邮电(中).[2].蒋焕文,孙续.电子测量(第二版).中国计量(中).[3].郭天祥.51单片机C语言教程.电子工业〔中〕.[4].Spartan-3GenerationUserGuide..*ilin*.(美).[5].万福君,潘松峰,*芳.MCS-51单片机原理、系统设计与应用.清华大学〔中〕.附录附录1:C51描述:#include<reg51.h> //包含8051的SFR存放器定义头文件#include<ABSACC.H>//管脚申明//数据选择器的位选控制端口接P0^0、P0^1、P0^2//计数器使能信号端接P0^3:switchsignal//三个指示单位的LED灯:1Hz:P0^4、1KHz:P0^5、1MHZ:P0^6、overflow:P0^7//数据选择器的输出口接P1//6个数码管的位选线接P2^0、P2^1、P2^2//计数器清零信号端接P2^7:clr//数码管的段选接P3//全局变量申明sbitswitchsignal=P0^3;sbitclr=P2^7;#defineN50000000//共阳极charnum[]={0*C0,0*F9,0*A4,0*B0,0*99,0*92,0*82,0*F8,0*80,0*90};//7-segcodeschardot[]={0*FF,0*7F};//point//控制数码管的段选和片选charbuf[]={0,0,0,0,0,0};chardpn[]={0,0,0,0,0,0};charchose[]={0*1F,0*2F,0*37,0*3B,0*3D,0*3E};//sbitled=P0^4; //清零信号sbitno_in=P2^6;intcal_flag=0;//函数申明voiddisp();voiddatain();voidCal(unsignedlongdata1,unsignedlongdata2);voidDivi(longfreq,intMul);voidDelay(unsignedintt){ do { TH0=0*FA; TL0=0*24; //设置定时器初值〔对应0.001s〕TR0=1; //启动定时器while(!TF0); //等待定时器溢出TR0=0; //停顿定时器TF0=0; //去除溢出标志 }while(--t!=0); //循环t次}voidmain(){ TMOD&=0*0F; TMOD|=0*01; //将定时器T0设置为方式1,即16位定时器for(;;) { datain(); disp(); }}voiddisp(){unsignedchari;for(i=0;i<6;i++){P3=num[buf[i]]&dot[dpn[i]]; P2&=0*80; P2|=chose[5-i]; Delay(1);}}voiddatain(){ unsignedlongdata1,data2; unsignedchari; if(no_in==0) { for(i=0;i<6;i++) { dpn[i]=0; buf[i]=0; } } else{ if(switchsignal==1) { cal_flag=0; } if(switchsignal==0&&cal_flag==0) { Delay(1); for(i=0;i<4;i++) { P0&=0*F8; P0|=(0*03-i); data1<<=8; data1+=P1; } for(i=0;i<4;i++) { P0&=0*F8; P0|=(0*07-i); data2<<=8; data2+=P1; } Cal(data1,data2); cal_flag=1; clr=1; Delay(1); clr=0; }}}voidCal(unsignedlongdata1,unsignedlongdata2){ floatfreq; inti; freq=(float)data1/data2; freq=freq*50000000;if(freq<1) { P0&=0*0F; P0|=0*E0; freq=freq*10000000; Divi((unsignedlong)freq,7); for(i=5;i>=1;i--) { buf[i]=buf[i-1]; } buf[0]=0; dpn[0]=1; } elseif(freq<1000) { P0&=0*0F; P0|=0*E0; freq=freq*10000000; Divi((unsignedlong)freq,7);}elseif(freq<1000000) { P0&=0*0F; P0|=0*D0; freq=freq*1000; Divi((unsignedlong)freq,6);} elseif(freq<=100000000) { P0&=0*0F; P0|=0*B0; Divi((unsignedlong)freq,6);}else { P0&=0*0F; P0|=0*70; }}voidDivi(unsignedlongfreq,intMul){ inti=0; inttemp[20]; intj; unsignedlonglfreq=freq;for(j=0;j<6;j++){dpn[j]=0; } while(lfreq!=0) { temp[i]=lfreq%10; i++; lfreq=lfreq/10; } if(i-Mul-1<6&&i-Mul-1>=0){ dpn[i-Mul-1]=1; } for(j=0;j<6;j++) { buf[j]=temp[i-1]; i--;} }附录2:32位计数器VHDL描述:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entityCounterisPort(clk:instd_logic;clr:instd_logic; en:instd_logic; counter_out:outstd_logic_vector(31downto0));endCounter;architectureBehavioralofCounterissignalcounter:std_logic_vector(31downto0):=(others=>'0');beginprocess(clk,clr)begin ifclr='1'then counter<=(others=>'0'); elseifen='1'then ifrising_edge(clk)then counter<=counter+1; endif; endif; endif;endprocess;counter_out<=counter;endBehavioral;附录3:分频器VHDL描述libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;entityFreDivis port(clk:instd_logic;--50MHz时基信号输入 clkout1:outstd_logic); --产生2个信号输出周期4s、50MHzendFreDiv;architectureBehavioralofFreDivis signaltmp:integerrange1to100000000:=1; signala_var:std_logic:='0';begin process(clk) begin --分频器产生周期为3s的信号 ifrising_edge(clk)then iftmp=100000000then a_var<=nota_var; tmp<=1; else tmp<=tmp+1; endif; endif; endprocess;clkout1<=a_var;--clkout2<=clk;endBehavioral;附录4:D触发器VHDL描述libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;entityD_TriggerisPort(D:inSTD_LOGIC;clk:inSTD_LOGIC;Q:outSTD_LOGIC; no_in1:outstd_logic);endD_Trigger;architectureBehavioralofD_Triggerissignalbiaoshi:std_logic;beginprocess(clk) begin ifrising_edge(clk)then Q<=D; biaoshi<='1'; endif;endprocess;no_in1<=biaoshi;endBehavioral;附录5:多路选择器VHDL描述libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;entitymu*isPort(count:instd_logic_vector(2downto0);data1:inSTD_LOGIC_VECTOR(31downto0);data2:inSTD_LOGIC_VECTOR(31downto0);y_out:outSTD_LOGIC_VECTOR(7downto0));endmu*;architectureBehavioralofmu*isbeginprocess(count) begin casecountis when"000"=>y_out<=data1(7downto0); when"001"=>y_out<=data1(15downto8); when"010"=>y_out<=data1(23downto16); when"011"=>y_out<=data1(31downto24); when"100"=>y_out<=data2(7downto0); when"101"=>y_out<=data2(15downto8); when"110"=>y_out<=data2(23downto16); when"111"=>y_out<=data2(31downto24); whenothers=>NULL; endcase; endprocess;endBehavioral;附录6:MC8051VHDL描述libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;entitymc8051isport(clk:instd_logic;reset:instd_logic; addr_out_user:outSTD_LOGIC_VECTOR(13downto0); data_in_user:inSTD_LOGIC_VECTOR(7downto0); wr_user:outSTD_LOGIC;int0_i:instd_logic;int1_i:instd_logic;all_t0_i:instd_logic;all_t1_i:instd_logic;all_r*d_i:instd_logic_vector(0downto0);p0_i:instd_logic_vector(7downto0);p1_i:instd_logic_vector(7downto0);p2_i:instd_logic_vector(7downto0);p3_i:instd_logic_vector(7downto0);p0_o:outstd_logic_vector(7downto0);p1_o:outstd_logic_vector(7downto0);p2_o:outstd_logic_vector(7downto0);p3_o:outstd_logic_vector(7downto0);all_t*d_o:outstd_logic_vector(0downto0); le:outstd_logic_vector(1downto0);wr_rs:outstd_logic_vector(1downto0);ram*_data_o:outstd_logic_vector(7downto0));endmc8051;architectureBehavioralofmc8051is ponentmc8051_core_onchipport(clk:instd_logic;reset:instd_logic; addr_out_user:outSTD_LOGIC_VECTOR(13downto0); data_in_user:inSTD_LOGIC_VECTOR(7downto0); wr_user:outSTD_LOGIC;int0_i:instd_logic;int1_i:instd_logic;all_t0_i:instd_logic;all_t1_i:instd_logic;all_r*d_i:instd_logic_vector(0downto0);p0_i:instd_logic_vector(7downto0);p1_i:instd_logic_vector(7downto0);p2_i:instd_logic_vector(7downto0);p3_i:instd_logic_vector(7downto0);p0_o:outstd_logic_vector(7downto0);p1_o:outstd_logic_vector(7downto0);p2_o:outstd_logic_vector(7downto0);p3_o:outstd_logic_vector(7downto0);all_t*d_o:outstd_logic_vector(0downto0); le:outstd_logic_vector(1downto0);wr_rs:outstd_logic_vector(1downto0);ram*_data_o:outstd_logic_vector(7downto0)); endponent;beginuu1:mc8051_core_onchipportmap( clk=>clk,reset=>reset, addr_out_user=>addr_out_user, data_in_user=>data_in_user, wr_user=>wr_user,int0_i=>int0_i,int1_i=>int1_i,all_t0_i=>all_t0_i,all_t1_i=>all_t1_i,all_r*d_i(0)=>all_r*d_i(0),p0_i(7downto0)=>p0_i,p1_i(7downto0)=>p1_i,p2_i(7downto0)=>p2_i,p3_i(7downto0)=>p3_i,p0_o(7downto0)=>p0_o,p1_o(7downto0)=>p1_o,p2_o(7downto0)=>p2_o,p3_o(7downto0)=>p3_o,all_t*d_o(0)=>all_t*d_o(0), le=>le,wr_rs=>wr_rs,ram*_data_o=>ram*_data_o);endBehavioral;附录7:topVHDL描述libraryieee;useieee.std_logic_1164.ALL;entitytopis port(reset:instd_logic; clkbasic:instd_logic; clkbeen:instd_logic; segchose:outstd_logic_vector(7downto0); bitchose:outstd_logic_vector(5downto0); Led1Hz:outstd_logic; Led1KHz:outstd_logic; Led1MHz:outstd_logic; Ledoverflow:outstd_logic; gate:outstd_logic; all_r*d_i:instd_logic_vector(0downto0); all_t*d_o:outstd_logic_vector(0downto0)--clr:outstd_logic; --int0_i:instd_logic;--int1_i:instd_logic; --wr_rs_o:outstd_logic_vector(1downto0) );endtop;architectureBEHAVIORALoftopis signaladdr_user_r:std_logic_vector(13downto0); signaldata_userin_r:std_logic_vector(7downto0); signaldata_userout_r:std_logic_vector(7downto0); signalwr_user_r:std_logic_vector(0downto0); signal*L*N_1:std_logic_vector(31downto0);--Mu* signal*L*N_2:std_logic_vector(31downto0);--Mu* signal*L*N_3:std_logic_vector(7downto0);--p0_i signal*L*N_4:std_logic_vector(7downto0);--p1_i signal*L*N_5:std_logic_vector(7downto0);--p2_i signal*L*N_6:std_logic_vector(7downto0);--p3_i signal*L*N_7:std_logic_vector(7downto0);--p0_o signal*L*N_8:std_logic_vector(7downto0);--p1_o signal*L*N_9:std_logic_vector(7downto0);--p2_o signal*L*N_10:std_logic_vector(7downto0);--p3_o signal*L*N_11:std_logic;--计数器使能信号 signal*L*N_12:std_logic;--3s周期信号-- signal*L*N_13:std_logic; signal*L*N_14:std_logic;--18MHz signal*L*N_15:std_logic;--50MHz signalreset_r:std_logic;--reset ponentmc8051 port(clk:instd_logic; reset:instd_logic; addr_out_user:outSTD_LOGIC_VECTOR(13downto0); data_in_user:inSTD_LOGIC_VECTOR(7downto0); wr_user:outSTD_LOGIC; int0_i:instd_logic; int1_i:instd_logic; all_t0_i:instd_logic; all_t1_i:instd_logic; all_r*d_i:instd_logic_vector(0downto0); p0_i:instd_logic_vector(7downto0); p1_i:instd_logic_vector(7downto0); p2_i:instd_logic_vector(7downto0); p3_i:instd_logic_vector(7downto0); p0_o:outstd_logic_vector(7downto0); p1_o:outstd_logic_vector(7downto0); p2_o:outstd_logic_vector(7downto0); p3_o:outstd_logic_vector(7downto0); all_t*d_o:outstd_logic_vector(0downto0); le:outstd_logic_vector(1downto0); wr_rs:outstd_logic_vector(1downto0); ram*_data_o:outstd_logic_vector(7downto0)); endponent;ponentmc8051_ramport(addra:instd_logic_vector(6downto0);dina:instd_logic_vector(7downto0);ena:instd_logic;wea:instd_logic_vector(0downto0);clka:instd_logic;douta:outstd_logic_vector(7downto0));endponent;ponentmc8051_ram*_mon51 port( clka:INstd_logic; wea:INstd_logic_VECTOR(0downto0); addra:INstd_logic_VECTOR(12downto0); dina:INstd_logic_VECTOR(7downto0); douta:OUTstd_logic_VECTOR(7downto0)); endponent;ponentmc8051_ram*_user port( clka:INstd_logic; wea:INstd_logic_VECTOR(0downto0); addra:INstd_logic_VECTOR(13downto0);--notice:thewidthwillbechangedfortherealoneindesign. dina:INstd_logic_VECTOR(7downto0); douta:OUTstd_logic_VECTOR(7downto0)); endponent;ponentdcm_3port(U1_RST_IN:instd_logic;U1_CLKIN_IN:instd_logic;U2_LOCKED_OUT:outstd_logic;U1_CLKF*_OUT:outstd_logic;U2_CLKF*_OUT:outstd_logic;U1_CLKIN_IBUFG_OUT:outstd_logic;U1_CLK0_OUT:outstd_logic;U2_CLK0_OUT:outstd_logic);endponent; PONENTD_Trigger PORT( D:INstd_logic; clk:INstd_logic; Q:OUTstd_logic; no_in1:outstd_logic ); ENDPONENT; PONENTmu* PORT( count:INstd_logic_vector(2downto0); data1:INstd_logic_vector(31downto0); data2:INstd_logic_vector(31downto0); y_out:OUTstd_logic_vector(7downto0) ); ENDPONENT; PONENTCounter PORT( clk:INstd_logic; clr:INstd_logic; en:INstd_logic; counter_out:OUTstd_logic_vector(31downto0) ); ENDPONENT; PONENTFreDiv PORT( clk:INstd_logic; clkout1:OUTstd_logic ); ENDPONENT;beginreset_r<=notreset;uu1:mc8051 PORTMAP( clk=>*L*N_14, reset=>reset_r, addr_out_user=>addr_user_r, data_in_user=>data_userin_r, wr_user=>wr_user_r(0), ram*_data_o=>data_userout_r, int0_i=>'0', int1_i=>'0', all_t0_i=>'Z', all_t1_i=>'Z', all_r*d_i=>all_r*d_i, all_t*d_o=>all_t*d_o, p0_i(2downto0)=>"000", p0_i(3)=>*L*N_11, p0_i(7downto4)=>"0000", p1_i=>*L*N_4, p2_i=>*L*N_5, p3_i=>"ZZZZZZZZ", p0_o=>*L*N_7, p1_o=>*L*N_8, p2_o=>*L*N_9, p3_o=>*L*N_10, le=>open, wr_rs=>open );uu3:mc8051_ram*_user portmap( clka=>*L*N_14, wea=>wr_user_r, addra=>addr_user_r,--notice:addr_user_r()thewidthwillbechangedfortherealoneindesign. dina=>data_userout_r, douta=>data_userin_r );U0:dcm_3portmap(U1_CLKIN_IN=>clkbasic,U1_RST_IN=>'0',U1_CLKF*_OUT=>*L*N_14,--18MHzU1_CLK
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度新能源产业发展赞助协议范本
- 2025年度太空探索项目工人雇佣服务合同
- 2025年度房屋租赁代管及租客租赁押金管理服务合同
- 产品合作运营合同范本
- 专卖代理销售合同范本
- 买卖宅基地合同范本
- 科学膳食指南健康成长新篇章
- 科技助力下的教育领域网络娱乐应用探索
- 仓库维修合同范本
- 社区环保行动的推动者-绿色超市
- 软压光机计算说明
- 森林防火安全责任书(施工队用)
- 《汽车性能评价与选购》课程设计
- 35kV绝缘导线门型直线杆
- 水库应急抢险与典型案例分析
- 49式武当太极剑动作方位
- 工程成本分析报告(新)
- 国际学术会议海报模板16-academic conference poster model
- 经典诵读比赛评分标准【精选文档】
- 高值耗材参考目录
- 步兵战斗动作
评论
0/150
提交评论