EDA课程设计题目一:交通灯控制器VHDL的设计题目二:智能函数发生器题目三:乐曲硬件演奏电路的VHDL设计专业:通信工程班级:通信084班一、设计题目:交通灯控制器VHDL的设计二、设计目标1、设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。2、红、绿、黄发光二极管作信号灯,。3、主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。4、主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。5、在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。三、设计原理主系统由三个模块组成,jtd.vhd为顶层文件,其内部包含三个功能模块模块:信号灯主控模块(moore.vhd)、减法计数器模块(jishu.vhd)、译码器模块(led7s.vhd)。1、选择1HZ时钟脉冲作为系统时钟。2、45秒、25秒、5秒定时信号用倒计时,计时起始信号由主控电路给出,每当计满所需时间,即向主控电路输出“时间到”信号,转换信号灯状态,由主控电路启、闭三色信号灯显示结果:十字路口的交通灯控制信号由主控电路给出,能显示十字路口东西、南北两个方向的红、黄、绿灯的指示状态。用两组红、黄、绿三种颜色的灯分别作为东西、南北两个方向的红、黄、绿灯,变化规律为:东西绿灯亮,南北红灯亮→东西黄灯亮,南北红灯亮→东西红灯亮、南北绿灯亮→东西红灯亮,南北黄灯亮→东西绿灯亮,南北红灯亮….,这样依次循环。东西方向是主干道车道,南北方向是支干道车道,要求两条交叉道路上的车辆交替运行,主干道每次通行时间都设为45秒,支干道每次通行时间都设为25秒。在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道。要求交通灯控制器有复位功能,在复位信号使能的情况下能够实现交通灯的自动复位,并且要求所有交通灯的状态变化,包括复位信号引起的均发生时钟脉冲的上升沿处。四、设计内容1.信号灯主控模块moore.vhd设计一个Morre型状态机,是一个4状态的状态机,输出ld0控制减法计数器,在减法计数器减计数到6或1时,计数器输出1,将计数器的输出输入到Moore型状态机c0中来实现状态机的输入控制,再通过状态机的输出来控制计数器的计数值。即原理相同于S0为东西方向的绿灯控制及南北方向的红灯控制,计数时间为45秒;S1为东西方向黄灯控制及南北方向的红灯控制,计数时间为5秒;S2为南北方向的绿灯控制及东西方向的红灯控制,计数时间为25秒;S3为南北方向的黄灯及东西方向的红灯控制,计数时间为5秒。状态图如下:clkjishu:u2:c1rstc_st.s2dinh0[2]green_east1green_north1ld0red_east1red_north1yellow_east1yellow_north1clkmoore:u1:c_st.s2moore:u1:dinh0[2]moore:u1:ld0c1qa[0..3]qb[0..3]jishu:u2:qb[0..3]Mux0~0Mux1~0Mux2~0Mux3~0Mux4~0Mux5~0Mux6~0jishu:u2:qa[0..3]Mux0~0Mux1~0Mux2~0Mux3~0Mux4~0Mux5~0Mux6~0jishu:u2led7s:u3clkgreen_eastgreen_northred_eastred_northrstyellow_eastyellow_northone_east[0..6]one_north[0..6]ten_east[0..6]ten_north[0..6]led7s:u4moore:u12.减法计数器的设计jishu.vhd减法计数器设计,用dinh1和dinl1来设置所需要的计数数值,ld1为初始化计数数值,当减法计数器减到设置的6或1时,C1输出为1,其他时间均为0。Qh1和ql1为计数器的计数输出。3.译码器的设计led7s.vhd译码器是一个简单的LED的显示的译码,为4—7译码器。五、仿真结果clk0rst0c0ld0red_east1green_east1yellow_east1red_north1green_north1yellow_north1dinl0[3..0]dinh0[3..0]mooreinstclk1ld1dinl1[3..0]dinh1[3..0]ql1[3..0]qh1[3..0]c1jishuinst1a[3..0]led7s[6..0]led7sinst2clk0:1Hz时钟输入rst0:复位端c0:状态机输入控制信号ld0输出计数控制信号dinh0,dinl0:输出高低位计数值red_east1等:红黄绿灯控制信号clk1:1Hz时钟输入ld1:计数控制信号dinh1,dinl1:输入高低位计数值qh1,ql1:输出高低位计数值c1:输出状态机控制信号a:译码输入信号led7s:译码输出信号一、设计题目:智能函数发生器二、设计目标设计一个智能函数发生器,能够以稳定的频率发生递增斜波、递减斜波、三角波、梯形波,正弦波和方波。设置一个波形选择输入信号,通过此改变该信号可以选择以上各种不同种类的输出函数波形,系统具有复位功能。三、设计原理主系统由7个模块组成,singt.vhd为顶层设计文件,其内部有七个功能模块:波形选择模块(wavsel.vhd)、递增斜波模块(zengxie.vhd)、递减斜波模块(jianxie.vhd)、三角波模块(rect.vhd)、梯形模块(trap.vhd)、方波模块(reta.vhd)、正弦波模块(sindata.vhd)。智能函数发生器原理图inclockaddress[5..0]q[7..0]clk1rst1rout1[7..0]clk2rst2zout2[7..0]clk3rst3jout3[7..0]clk4rst4sout4[7..0]clk5rst5tout5[7..0]key11key22key33zin0[7..0]jin0[7..0]rin0[7..0]tin0[7..0]sin0[7..0]sinin0[7..0]dout[7..0]+A[5..0]B[5..0]ADDERDQPREENACLRzengxie:u3wavsel:u7clkrstkey1key2key3douts[7..0]rect:u5sindata:u1q1[5..0]Add06'h01--jianxie:u4reta:u2trap:u6递减模块递增模块三角波模块梯形波模块方波模块正弦波模块选择模块输出信号四、设计内容1.递减模块的设计jianxie.vhd递减模块的设计,递减模块是用VHDL程序描述的递增函数,它的实体部分部分说明三个端口,其中两个输入端口时钟信号clk3、复位信号rst3和一个输出端口jout3。结构体部分定义一个8位二进制变量,然后使用进程语句,设定敏感信号clk3和rst3,通过设计一个中间变量从00000101到00000000的递减赋值给输出信号jout3,编译无误后,即额可以创建递减元件符号。2.递增模块的设计zengxie.vhd递增模块的设计与递减模块相似,其中两个输入端口时钟信号clk2、复位信号rst2和一个输出端口zout2。结构体部分定义一个8位二进制变量,然后使用进程语句,设定敏感信号clk2和rst2,通过设计一个中间变量从00000000到00000101的递增赋值给输出信号zout2,编译无误后,即额可以创建递增元件符号。3.三角波模块的设计rect.vhd三角波模的设计完成功能异步复位和三角波的形成,程序定义两个中间变量,一个中间变量即为输出赋值,另一个完成三角波分段,当p为0时,完成三角波的前段从00000000到00000101递增;当p为1时,完成后段的从00000101到00000000的递减,形成一个完整的三角波。4.梯形波模块的设计trap.vhd梯形波模块的设计通过运用case语句,设计三个状态,使信号在“00”状clk3rst3jout3[7..0]jianxieinstclk2rst2zout2[7..0]zengxieinstclk4rst4sout4[7..0]rectinst2态时从00000000到00000101递增,在“01”状态时保持00000101,在“10”状态时从00000101到00000000递减,形成一个完整的梯形波。5.方波模块的设计reta.vhd方波模块即是完成方波输出地设计,以及有异步复位的功能,该程序采用了两个进程语句,第一个进程是完成在时钟上升沿同步时,r6时输出rout1=00000110,否则输出rout1=00000000。在第二个进程中,完成在时钟上升沿的时候,r从00000000递增到00001011,创建的元件符号同样是三个端口,即时钟信号clk1和复位信号rst1,以及一个8位二进制的输出端口rout1。6.正弦波模块的设计sindata.vhd正弦波的设计是通过建立正弦波形数据、定制LPMROM来实现的。7.选择模块的设计wavsel.vhd选择模块的设计通过运用case语句,设计六个状态,通过控制输入信号key11、key22、key33,选择输出波形。“000”输出递增斜波,“001”输出递减斜波,“010输出”方波,“011”输出梯形波,“100”输出三角波,“101”输出正弦波。clk5rst5tout5[7..0]trapinst3clk1rst1rout1[7..0]retainst1address[5..0]inclockq[7..0]sindatainstkey11key22key33zin0[7..0]jin0[7..0]rin0[7..0]tin0[7..0]sin0[7..0]sinin0[7..0]dout[7..0]wavselinst五、仿真结果1.递增斜波2.递减斜波3.方波4.梯形波5.三角波6.正弦波一、设计题目:乐曲硬件演奏电路的VHDL设计二、设计目标能够播放“梁祝”乐曲。(2)能够通过LED显示音阶。(3)具有“播放/停止”功能,并在此基础上实现“按键演奏”的电子琴功能。三、设计原理主系统由三个模块组成,songer.vhd为顶层设计文件,其内部有三个功能模块:tonetaba.vhd、notetabs.vhd和speakera.vhd。我们知道,组成乐曲的每个音符的发音频率值及其持续时间是乐曲能连续演奏所需的两个基本要素,问题是如何来获取了这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值事先所希望乐曲的演奏效果。原理图中,模块U1类似于探亲人的手指;U2类似于琴键;U3类似于琴弦或音调发生器。四、设计类容1.数控分频器模块Speakera.vhd这是一个数控分频器,有其clk端输入已具有较高频率(这里是12MHz)的信号,通过Speakera分频后又SPKOUT输出。Speakera对clk输入信号的分频比由11位预置数Tone[10..0]决定。2.按键模块ToneTaba.vhd模块ToneTaba的功能首先是为Speakera提供决定所发音符的分频预置数,而此数在Speakera输入口停留的时间即为此音符的节拍值。模块ToneTaba是乐曲简谱码对应得分频预置数查表电路,其中预置了“梁祝”乐曲全部音符所对应的分频预置数,共13个,这13个值的输出有对应于ToneTaba的4位输入值Index[3..0]确定。clk12mhzToneTaba:u2:tone[0..10]Spksclk8hzkz1rstshuru[1..4]toneindex[0]~10toneindex[1]~11toneindex[2]~12toneindex[3]~9toneind