ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:189.93KB ,
资源ID:13077594      下载积分:6 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-13077594.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(可编程资料概览.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

可编程资料概览.docx

1、可编程资料概览大题全部写代码1.标识符value标识符格式reg,数字不能开头变量,可以%_$ 其他的不可以,关键词 reg or 不行,内部有的2.阻塞非阻塞赋值 =立即赋值,=延时,例子a=b=c a=1 b=a c=b a=c=b=1a=1 b=a c=b a=1 b=0 c=0阻塞赋值和非阻塞赋值的基本区别是:阻塞赋值是顺序执行语句,而非阻塞赋值是并行执行语句。3. 拼接运算符 作用 :不同的数拼在一起 例子:A=3b101 B=6b101101 问A,B3:1=6b101110 记得数数是从0开始的,A全部,B的 1到3位宽不够高位补0;位宽过剩裁去高位1s=103ms=106us=

2、109ns=1012ps4.BCD码-B二进制 D十进制 O八进制 H十六进制2个十六进制为1个字节,8个二进制数为1个字节例子 (13)10=(00010011)BCD 考试可能问 (13)8=(?)BCD 转换见书本目录页5.属于可编程逻辑器件 FPGA CPLD EPLD ARM C51 X86不是Assign对应wire Always对应reg6.注解 行注解/ 段注解/*SDSJDKJDSLKDL*/7.%叫做取余数 13%5=3 / 叫做整除13/5=28.ModelSim仿真工具,用代码生成波形,例子Always Begin#10 clk=0; (#叫做延迟时间单位,单位时间是t

3、imescale 10ns/100ps,表示1单位时间=10ns,100ps代表精度,这句意思过了100ns后 clk=0 (clk前200ns是0)又过100ns clk取反) #10 clk=clk;End 200NS 100NS 100NS 100NS Clk 占空比 高电平比整个周期 1/2这段测试代码的意思是:以ps为单位,0时刻是,A=B=C=D=1,表示四个安全带均没有系上,然后过了10ps,B=0,代表这个安全带系上了;再过了10ps,A=0,代表另一个安全带系上了;再过了10ps,D=0,代表另一个安全带系上了;再过了10ps,C=0,最后一个安全带系上了。然后再过10ps,

4、B=1,这个安全带松开了。最后再过20ps,测试结束。以上情况已经可以完全模拟电路的工作情况,如果仿真正确,当且仅当A=B=C=D=0的时刻,LED_OUT=0,BUZ_OUT=0,灯灭,蜂鸣器不响;其它情况LED_OUT和BUZ_OUT均为。9.异步复位同步复位 Always(posedge clk) posedge上升沿 negedge下降沿 同步异步看posedge 同步短If(rstn=1b0)指定同步复位时,always的敏感表中仅有时钟沿信号,仅仅当时钟沿采到同步复位的有效电平时,才会在时钟沿到达时刻进行复位操作。指定异步复位时,只需always的敏感表中加入复位信号的有效沿即可,

5、当复位信号有效沿到达时,无论时钟沿是否有效,复位都会立即发挥其功能。10.长信号赋值给短信号例子A=8b10010011B=3b001B=AB=011(取后几位)Reg19:0AReg9:0BB=3? 1b1:1b0;endmodule七人表决器方法一Input6:0 In;Ouput u;Always (in)If (in6+in5.+in04) u=1;b1ElseOut=1b0 方法二Case(In0+In1+In6)3d4:u=1b1;3d5:u=1b1;Default:u=0;Endcase;2.多路选择器(5选1)例子:4选1数据选择器 reg F; always(P0 or P1

6、 or P2 or P3 or S) begin case(S) /用case语句进行选择 2b00:F=P0; /S1S0=00时选择输出数据P0 2b01:F=P1; /S1S0=01时选择输出数据P1 2b10:F=P2; /S1S0=10时选择输出数据P2 2b11:F=P3; /S1S0=11时选择输出数据P3 endcase end endmodule 2位二进制数据比较器module a1(A,B,EQ,LG,SM);input 1:0A,B;output EQ,LG,SM;reg EQ,LG,SM;always(A or B)begin if(A=B) begin EQ=(A=

7、B)?1b1:1b0;LG=1b0;SM=1b0; end else if(AB) begin EQ=1b0;LG=(AB)?1b1:1b0;SM=1b0; end else begin EQ=1b0;LG=1b0;SM=(AB)?1b1:1b0; endendendmodule3触发器 (置位,复位,上升沿,下降沿)有圆圈是下降沿negedge升沿posedge给图写代码4.分频器分频系数=原频率/目标频率=19.44MHZ/8KHZ=2430最大计数为分频系数的一半(高低电平各一半)即1215=10011100010B,因此二进制计数器的位数为11。先弄分频系数直接除 2430怎么知道多少

8、位 参考点 210=1024;211=2048 ;212=4096;213=8192 解答 always(posedge clk) begin if(cnt=1214) cnt=0; else cnt=cnt+1; end always(posedge clk) begin if(cnt=1214) clkout=clkout; else clkout=1b0; end0.01s分频器(1s为25000000)module m_divider(sys_clk,div_clk);input sys_clk;output div_clk;reg26:0counter;reg div_clk; al

9、ways(posedge sys_clk) if (counter=27d2500000000) begin counter=27b0; div_clk=div_clk; end else counter=counter+1b1; endmodule 分频器与计数器的配合0-9方法一模块一:分频module fenpin25(clk,rst,clk_1hz); input clk; input rst; output clk_1hz; reg clk_1hz; reg 24:0cnt; always(posedge clk or negedge rst) begin if(rst=1b0) c

10、nt=25d0; else if(cnt=25d25000000) begin cnt=25d0; clk_1hz=clk_1hz; end else cnt=cnt+1; endendmodule模块二:module cnt74160(clk,rst,en,load,data,dout,cout); input clk,rst,en,load; input3:0 data; output3:0 dout; output cout; reg3:0 q1; reg cout; assign dout=q1; always (posedge clk or negedge rst)begin if(

11、!rst) q1=0;else if(en)beginif(!load) q1=data;else if (q19) q1=q1+1;elseq1=4b0000;endendalways (q1)beginif(q1=4h9) cout=1b1;else cout=1b0;endendmodule模块三:module qiduan(cnt,led,scan); input 3:0 cnt; output 6:0 led;output 3:0 scan;reg 6:0 led;wire 3:0 scan;assign scan=4b0001;always(cnt)begin case(cnt)4

12、b0001:led=7b0000110;4b0010:led=7b1011011;4b0011:led=7b1001111;4b0100:led=7b1100110;4b0101:led=7b1101101;4b0110:led=7b1111100;4b0111:led=7b0000111;4b1000:led=7b1111111;4b1001:led=7b1101111;4b1010:led=7b1110111;default:led=7b0111111;endcaseendendmodule顶层模块:module count_160(clk,rst,en,load,data,cout,sc

13、an,led);input clk,rst,en,load;input3:0 data; output cout;output 6:0 led; output 3:0 scan;wire 3:0 cnt; wire 6:0 led; wire 3:0 scan; fenpin25 u0(clk,rst,clk_1hz); cnt74160 u1(clk_1hz,rst,en,load,data,cnt,cout); qiduan u2(cnt,led,scan); endmodule方法二:模块一:module sysclk(reset,sys_clk,clk_1hz);input sys_c

14、lk;input reset;output clk_1hz; reg24:0 cnt25m;reg clk_1hz;always(posedge sys_clk ) if (reset=1b1) cnt25m=25d0; else if(cnt25m=25d25000000) begin cnt25m=25d0; clk_1hz=clk_1hz; end else cnt25m=cnt25m+1b1;endmodule 模块二:module cnt_10(reset,clk,cnt);input clk,reset;output 3:0cnt;reg3:0 cnt; always (posed

15、ge clk or posedge reset)begin if (reset=1b1) cnt=4b0000; else if (cnt=4d9) cnt=4b0000; else cnt=cnt+1; end endmodule模块三:module ymxs(cnt,scan,data_out,); input3:0cnt; output 7:0data_out; output 3:0scan; assign scan =4b0001; reg7:0 data_out; wire 3:0scan; always(cnt) begin case (cnt) 4b0000 : data_out

16、=8b00111111; 4b0001 : data_out=8b00000110; 4b0010 : data_out=8b01011011; 4b0011 : data_out=8b01001111; 4b0100 : data_out=8b01100110; 4b0101 : data_out=8b01101101; 4b0110 : data_out=8b01111101; 4b0111 : data_out=8b00000111; 4b1000 : data_out=8b01111111; 4b1001 : data_out=8b01101111; default : data_ou

17、t=8b00000000; endcase endendmodule顶层模块module total (reset,sys_clk,data_out,scan);input sys_clk;input reset;output 7:0data_out;output 3:0scan;wire clk_1hz;wire 3:0 cnt;sysclk U1(reset,sys_clk,clk_1hz);cnt_10 U2(reset,clk_1hz,cnt);ymxs U3(cnt,scan,data_out);endmodule占空比为1:15的分频电路设计 module clk_15_1(clk

18、,rst,clk_div);input clk,rst;output clk_div;reg clk_div;reg 3:0 cnt;always (posedge clk or posedge rst) begin if (rst=1b1) cnt=4b0000; else cnt=cnt+1; end always(posedge clk or posedge rst) begin if(rst=1b1) clk_div=1b0; else if (cnt=4d15) clk_div=1b1; else clk_div=1b0; end endmodule占空比为10:6的波形设计和仿真m

19、odule clk_10_6(clk,rst,clk_div);input clk,rst;output clk_div;reg clk_div;reg 3:0 cnt;always (posedge clk or posedge rst) begin if (rst=1b1) cnt=4b0000; else cnt=cnt+1; end always(posedge clk or posedge rst) begin if(rst=1b1) clk_div=4d10) clk_div=1b1; else clk_div=1b0; end endmodule移位寄存器1.并入串出module

20、 myshift_3(din,clk,rst,load,dout);input clk,rst,load;input3:0din;output dout;reg dout;reg 3:0 q;always (posedge clk or negedge rst) begin if (rst=1b0) dout=4b0000; else if (load=1b1) q=din; else begin q=q1; q0=1b0; end dout=q3; end endmodule2.串入并出module myshift_2(din,clk,rst,dout);input din,clk,rst;

21、output 3:0dout;reg 3:0dout;always(posedge clk or negedge rst) begin if (rst=1b0) dout=4b0000;else dout=dout2:0,din;end endmodule3.串入串出module shift_1(din,clk,dout); input din,clk; output dout; reg dout; reg tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,tmp7; always(posedge clk) begin tmp1=din; tmp2=tmp1; tmp3=tmp2;

22、tmp4=tmp3; tmp5=tmp4; tmp6=tmp5; tmp7=tmp6; dout=tmp7; endendmodule 循环移位寄存器设计 module shift_4(clk,rst, din,dout); input clk,rst; input 3:0 din; output 3:0 dout; reg 3:0 dout; always (posedge clk or posedge rst) begin if(rst = 1b1) dout=din; else begin dout3:1=dout2:0; dout0=dout3; end end endmodule 流

23、水灯循环移位点亮模块一module shift_8(clk_2,rst,din,dout); input clk_2,rst; input 3:0 din; output7:0 dout; reg7:0 dout; always(posedge clk_2 or posedge rst) begin if(rst=1b1) dout=din; else begin dout7:1=dout6:0; dout0=dout7; end endendmodule模块二:module fenpin(rst,clk,clk_1hz); input rst,clk;output clk_1hz;reg c

24、lk_1hz;reg24:0 counter;always(posedge clk or posedge rst)beginif(rst=1)counter=0;else if(counter=25d25000000) begin counter=0; clk_1hz=clk_1hz; end elsecounter=counter+1b1;endendmodule顶层模块:module zong(rst,clk,din,dout); input rst,clk;input 3:0 din;output7:0 dout; wire clk_1hz; fenpin U1(rst,clk,clk_

25、1hz); shift_8 U2(clk_1hz,rst,din,dout);endmodule数码管段轮流点亮模块一:module fenpin(rst,clk,clk_1hz); input rst,clk; output clk_1hz; reg clk_1hz; reg24:0 counter; always(posedge clk or posedge rst) begin if(rst=1) counter=0; else if(counter=25d25000000) begin counter=0; clk_1hz=clk_1hz; end else counter=count

26、er+1b1; end endmodule模块二:module shift_8(clk_2,rst,din,scan,dout); input clk_2,rst; input 3:0 din; output 3:0 scan; output7:0 dout; reg7:0 dout; assign scan=4b0001; always(posedge clk_2 or posedge rst) begin if(rst=1b1) dout=din; else begin dout7:1=dout6:0; dout0=dout7; end endendmodule顶层模块:module zong(rst,clk,din,scan,dout); input rst,clk;input 3:0 din;output7:0 dout;output 3:0 scan;wire clk_1hz; fenpin U1(rst,clk,clk_1hz); shift_8 U2(clk_1hz,rst,din,scan,dout);endmodule 时钟module digc_0379 (sys_clk,reset,pause,scan,data_out);input sys_clk,reset,pause;output3:0scan;output7:0data_out;reg 2

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2