verilog实验37个程序_第1页
verilog实验37个程序_第2页
verilog实验37个程序_第3页
verilog实验37个程序_第4页
verilog实验37个程序_第5页
已阅读5页,还剩68页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

38译码器/学习38译码器的原理,/拨码开关的123作为输入/本实验采用拨码开关来作为输入,LED作为状态显示/当然如果你的学习板没有拨码开关,可以用KEY1KEY2KEY3作为数据输入。/视频教程适合我们21EDA电子的所有学习板MODULEDECODER_38OUT,KEY_INOUTPUT70OUT/38译码器输出有8钟状态,所以要8个LED灯。INPUT20KEY_IN/123KEY1KEY2KEY3作为数据输入REG70OUTALWAYSKEY_INBEGINCASEKEY_IN3D0OUT8B11111110/LED作为状态显示,低电平有效3D1OUT8B111111013D2OUT8B111110113D3OUT8B111101113D4OUT8B111011113D5OUT8B110111113D6OUT8B101111113D7OUT8B01111111ENDCASEENDENDMODULE1位数码管动态显示/一位数码管试验/利用分频计数器得到数码管,效果/视频教程适合我们21EDA电子的所有学习板MODULESMG_LEDCLK_50M,RST,LED_BIT,DATAOUTINPUTCLK_50M,RST/系统时钟50M输入从12脚输入。OUTPUT70DATAOUT/我们这里用数码管,OUTPUTLED_BIT/一位数码管的位选择REG70DATAOUTREGLED_BITREG270COUNT/分频计数器/分频计数器ALWAYSPOSEDGECLK_50MBEGINCOUNTSWITCHLED00ELSELED01ENDENDMODULESMG_LED/本实验就是学习单个数码管的显示/视频教程适合我们21EDA电子的所有学习板MODULESMG_LEDCLK_50M,LED_BIT,DATAOUTINPUTCLK_50M/系统时钟50M输入从12脚输入。OUTPUT70DATAOUT/我们这里用数码管,OUTPUTLED_BIT/一位数码管的位选择REG70DATAOUTREGLED_BITALWAYSPOSEDGECLK_50MBEGINLED_BITBBEGINC_TMP21TEMP_REG2A2BENDELSEBEGINC_TMP20TEMP_REG2A2ENDIFTEMP_REG2,A1BBEGINC_TMP11TEMP_REG21TEMP_REG2,A1BENDELSEBEGINC_TMP10TEMP_REG21TEMP_REG2,A1ENDIFTEMP_REG21,A0BBEGINC_TMP01TEMP_REG0ENDELSEBEGINC_TMP00TEMP_REG0ENDENDENDALWAYSC_TMPBEGINCASEC_TMP4B0000C8B110000004B0001C8B111110014B0010C8B101001004B0011C8B101100004B0100C8B100110014B0101C8B100100104B0110C8B100000104B0111C8B111110004B1000C8B100000004B1001C8B100100004B1010C8B100010004B1011C8B100000114B1100C8B110001104B1101C8B101000014B1110C8B100001104B1111C8B10001110ENDCASEENDENDMODULE串口与电脑通信/本模块的功能是验证实现和PC机进行基本的串口通信的功能。需要在/PC机上安装一个串口调试工具来验证程序的功能。/程序实现了一个收发一帧10个BIT(即无奇偶校验位)的串口控/制器,10个BIT是1位起始位,8个数据位,1个结束/位。串口的波特律由程序中定义的DIV_PAR参数决定,更改该参数可以实/现相应的波特率。程序当前设定的DIV_PAR的值是0X145,对应的波特率是/9600。用一个8倍波特率的时钟将发送或接受每一位BIT的周期时间/划分为8个时隙以使通信同步/程序的工作过程是串口处于全双工工作状态,按动KEY1,FPGA向PC发送“21EDA“/字符串(串口调试工具设成按ASCII码接受方式);PC可随时向FPGA发送0F的十六进制/数据,FPGA接受后显示在7段数码管上。/视频教程适合我们21EDA电子的所有学习板MODULESERIALCLK,RST,RXD,TXD,EN,SEG_DATA,KEY_INPUT,LOWBITINPUTCLK,RSTINPUTRXD/串行数据接收端INPUTKEY_INPUT/按键输入OUTPUT70ENOUTPUT70SEG_DATAREG70SEG_DATAOUTPUTTXD/串行数据发送端OUTPUTLOWBIT/INNERREG/REG150DIV_REG/分频计数器,分频值由波特率决定。分频后得到频率8倍波特率的时钟REG20DIV8_TRAS_REG/该寄存器的计数值对应发送时当前位于的时隙数REG20DIV8_REC_REG/该寄存器的计数值对应接收时当前位于的时隙数REG30STATE_TRAS/发送状态寄存器REG30STATE_REC/接受状态寄存器REGCLKBAUD_TRAS/以波特率为频率的发送使能信号REGCLKBAUD_REC/以波特率为频率的接受使能信号REGCLKBAUD8X/以8倍波特率为频率的时钟,它的作用是将发送或接受一个BIT的时钟周期分为8个时隙REGRECSTART/开始发送标志REGRECSTART_TMPREGTRASSTART/开始接受标志REGRXD_REG1/接收寄存器1REGRXD_REG2/接收寄存器2,因为接收数据为异步信号,故用两级缓存REGTXD_REG/发送寄存器REG70RXD_BUF/接受数据缓存REG70TXD_BUF/发送数据缓存REG20SEND_STATE/每次按键给PC发送“WELCOME“字符串,这是发送状态寄存器REG190CNT_DELAY/延时去抖计数器REGSTART_DELAYCNT/开始延时计数标志REGKEY_ENTRY1,KEY_ENTRY2/确定有键按下标志/PARAMETERDIV_PAR16H145/分频参数,其值由对应的波特率计算而得,按此参数分频的时钟频率是波倍特率的8/倍,此处值对应9600的波特率,即分频出的时钟频率是96008CLK50M/ASSIGNTXDTXD_REGASSIGNLOWBIT0ASSIGNEN0/7段数码管使能信号赋值ALWAYSPOSEDGECLKBEGINIFRSTBEGINCNT_DELAY1ALWAYSC_TMPBEGINCASEC_TMP4B0000C8B110000004B0001C8B111110014B0010C8B101001004B0011C8B101100004B0100C8B100110014B0101C8B100100104B0110C8B100000104B0111C8B111110004

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论