Verilog-VHDL-曼彻斯特编码器Word版_第1页
Verilog-VHDL-曼彻斯特编码器Word版_第2页
Verilog-VHDL-曼彻斯特编码器Word版_第3页
Verilog-VHDL-曼彻斯特编码器Word版_第4页
Verilog-VHDL-曼彻斯特编码器Word版_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、1.5.什么叫“综合”?一般“综合”包含哪些过程? 答:在电子设计领域中“综合”的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。 综合包含的过程:对VHDL或Verilog HDL进行处理分析,并将其转换成电路结构或模块,这时不考虑实际器件实现,即完全与硬件无关,这个过程是一个通用电路原理图形成的过程:第2步,对实际实现目标器件的结构进行优化,并使之满足各种约束条件,优化关键路径,等等。2.10 使用Quartus II的 Mega Wizard Plug-In Manager宏功能模块中的PLL设计一个能实现图题2.10波形的电路元件(包括一

2、个VHDL文件和一个*.bsf原理图图标)。其中:inclk0为电路的主频输入端,频率为50MHz;areset为异步置位端,c2和主频inclk0同频率。c1为主频inclk0的倍频输出信号。C0为c2的反相信号。Locked为相位控制信号,也是输出使能控制信号。( 2014am)3.20 试用VHDL 语言设计一个曼彻斯特编码器。已知有时钟信号clk_d、时钟的倍频信号clk及时钟的反相信号clk_dn。串行数据输入为data_s,编码输出为mcode_out,输出使能信号为clk_lock_in,高电平有效(2012am) (2013am) (2014am)提示:曼彻斯特码(Manche

3、ster Code)又称为数字双相码或分相码(Split-phase Code)。它的编 码规则是:用分别持续半个码元周期的正(高)、负(低)电平组合表示信码“1”;用分别持续半个码元周期的负(低) 、正(高)电平组合表示信码“0” 。 图题3.20 用倍频时钟设计Manchester Code图题3.20 用双时钟设计Manchester Code 的仿真结果 hsu_manchester_code_vmodule hsu_manchester_code_v ( clk,clk_d,clk_dn,data_s, clk_lock_in,mcode_out);input clk,clk_d,c

4、lk_dn,data_s,clk_lock_in;output mcode_out;reg mcode_out;reg temp_mcode_out;reg temp_mcode_out_ddn;always ( posedge clk or posedge clk_lock_in )begin if (clk_lock_in=1'b1) if (data_s=1'b1) temp_mcode_out<=clk_d; else temp_mcode_out<=1'b0; else temp_mcode_out=1'b0; end always ( p

5、osedge clk or posedge clk_lock_in )begin if (clk_lock_in=1'b1) if (data_s=1'b0) temp_mcode_out_ddn<=clk_dn; else temp_mcode_out_ddn<=1'b0; else temp_mcode_out_ddn=1'b0; Endalways ( posedge clk or posedge clk_lock_in ) begin if (clk_lock_in=1'b1) mcode_out<=temp_mcode_out

6、; temp_mcode_out_ddn; else mcode_out<=1'b0; end endmodule 3.21 试用VHDL 语言设计一个求两个数中最大值的程序,要求用函数调用的方法设计。其中:data为输入信号,位宽8bit,dataout为最大值输出,位宽8bit。Clk为时钟信号。设计一位控制信号set,当set为低电平时,输出data和peak中的最大值。(2013am) 2014am) 。实体部分LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE WORK.ning_bpac.ALL;ENTITY ning_peakd

7、etect IS PORT(data:IN STD_LOGIC_VECTOR(7 DOWNTO 0); clk,set: IN STD_LOGIC; dataout: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END ning_peakdetect ; ARCHITECTURE peakdetect_behave OF ning_peakdetect IS SIGNAL peak: STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN dataout<=peak; PROCESS(clk) BEGIN IF(clk'EVENT AND

8、clk='1') THEN IF (set='1' ) THEN peak<=data; ELSE peak<=max(data , peak); END IF; END IF; END PROCESS; END;函数部分LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;PACKAGE ning_bpac IS FUNCTION max(a: STD_LOGIC_VECTOR; b: STD_LOGIC_VECTOR) RETURN STD_LOGIC_VECTOR;END ning_bpac;PACKAGE BODY

9、 ning_bpac ISFUNCTION max(a: STD_LOGIC_VECTOR; b: STD_LOGIC_VECTOR) RETURN STD_LOGIC_VECTOR IS VARIABLE temp: STD_LOGIC_VECTOR(a'RANGE); BEGIN IF (a>b) THEN temp:=a; ELSE temp:=b; END IF; RETURN temp; END max;END ning_bpac;3.22 试用VHDL 语言设计一个8位二进制加计数器。其中:qout 为8位二进制输出,cout 为进位输出,clr 为同步清零端,当cl

10、r为高电平时清零、低电平时工作。Cipher为8位密码控制输入端,其控制功能如下表所示:(2014am) cipher功能 00001111加计数 11110000减计数 11001100停止计数 11111111停止计数并且输出BCD码要求:1.设计一个计数分频器,输入频率 clk 为50Mhz ,输出频率 newclk 为1hz。 newclk 为计数器的计数频率。2.编写一个把二进制转换为整数的函数。3.当停止计数时,调用上述函数用整数除法把二进制数转换为BCD 码。(2014am)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;EN

11、TITY Updowncnt8 ISPORT (clk,clr:IN STD_LOGIC;cipher:IN STD_LOGIC_VECTOR(7 DOWNTO 0);cout:OUT STD_LOGIC;q:BUFFER INTEGER RANGE 0 TO 15);END Updowncnt8;ARCHITECTURE one OF Updowncnt8 ISBEGINPROCESS(clk,clr)BEGINI

12、F clk'EVENT AND clk='1' THENIF clr ='0' THENCASE cipher ISWHEN "00001111"=>IF q=15 THEN q<=0;cout<='0'ELSIF q=14 THEN q<=q+1;cout<='1'ELSE q<=q+1;END&#

13、160;IF;WHEN "11110000"=>IF q=0 THEN q<=15;cout<='0'ELSIF q=1 THEN q<=q-1;cout<='1'ELSE q<=q-1;END IF;WHEN "11001100"=>NULL;WHEN "11111111"=> NULL;WHEN OTHERS =>NU

14、LL;END CASE;ELSIF clr ='1' THENq<=0;END IF;END IF;END PROCESS;END one;4.14 8线-3线优先编码器CD4532功能表如表4.1a所示,试用Verilog HDL语言实现该8线-3线优先编码器。 (2011am) (2011gam)(2012am) (2013am)(2014am)module coder_8(y,a);input7:0 a;output2:0y;reg2:0 y;always (a) begin if(a7

15、) y='b111; else if(a6) y='b110; else if(a5) y='b101; else if(a4) y='b100; else if(a3) y='b011; else if(a2) y='b010; else if(a1) y='b001; else y='b000; endendmodule 表4.1a 8线-3线优先编码器CD4532功能表(P109.例题4.6)4.15 把下列VHDL程序改写成Verilog HDL语言,并且用Quartus 通过编译。(2014am)LIBRARY IEEE

16、; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY hsu_count6_updown IS PORT(CLK,RST,ENA:IN STD_LOGIC; OUTY:OUT STD_LOGIC_VECTOR(3DOWNTO 0); COUT:OUT STD_LOGIC; cipher: IN STD_LOGIC_VECTOR(7 DOWNTO 0) );END hsu_count6_updown;ARCHITECTURE behave_cnt6 OF hsu_count6_updown ISSIGNAL

17、CQI: STD_LOGIC_VECTOR(3 DOWNTO 0):="0000"SIGNAL flag1_2: STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL cipher_temp: STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN cipher_temp<=cipher; P_COUNT10_VT: PROCESS(CLK,RST,ENA) BEGIN IF RST='1' THEN CQI<="0000" ELSIF CLK 'EVENT AND CLK='

18、1' THEN IF ENA='1' THEN if (flag1_2="00") then IF CQI<5 THEN CQI<=CQI+ 1; ELSE CQI<="0000" END IF; elsif (flag1_2="01") then IF CQI>0 THEN CQI<=CQI- 1; ELSE CQI<="0101" END IF; end if; END IF; END IF; OUTY<=CQI; IF (flag1_2="00") THEN COUT<= NOT( CQI(2) AND CQI(0); ELSIF (flag1_2="01") THEN COUT<

温馨提示

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

评论

0/150

提交评论