收藏 分享(赏)

数字系统设计与verilog_HDL_王金明_第四版__EDA期末知识点复习(宁波工程学院电科版).doc

上传人:jinchen 文档编号:5502419 上传时间:2019-03-05 格式:DOC 页数:5 大小:53KB
下载 相关 举报
数字系统设计与verilog_HDL_王金明_第四版__EDA期末知识点复习(宁波工程学院电科版).doc_第1页
第1页 / 共5页
数字系统设计与verilog_HDL_王金明_第四版__EDA期末知识点复习(宁波工程学院电科版).doc_第2页
第2页 / 共5页
数字系统设计与verilog_HDL_王金明_第四版__EDA期末知识点复习(宁波工程学院电科版).doc_第3页
第3页 / 共5页
数字系统设计与verilog_HDL_王金明_第四版__EDA期末知识点复习(宁波工程学院电科版).doc_第4页
第4页 / 共5页
数字系统设计与verilog_HDL_王金明_第四版__EDA期末知识点复习(宁波工程学院电科版).doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、1、采用硬件描述语言(HDL)进行电路设计的优势。1)更适合用于描述规模大、功能复杂的数字系统2)语言标准化、便于设计的复用、交流、保存和修改3)设计与工艺的无关性,宽范围的描述能力,便于组织大规模、模块化的设计2、Verilog 模块的结构模块声明:包括模块名字、模块输入、输出端口列表,结束关键字为 endmodule端口定义:格式为:input: 端口名 1,端口名 2端口名 n;output: 端口名 1,端口名 2端口名 n;inout: 端口名 1,端口名 2端口名 n;3、标识符是用户在编程时给 verilog 对象起的名字,模块、端口和实例的名字都是标识符。标识符可以是任意一组字

2、母、数字以及符号“$”和“_”的组合,但标识符的第一个字符必须是字母(a-z,A-Z)或者是下划线“_” ,标识符最长可包含 1023 个字符,此外,标识符区分大小写。4、整数写法:+/-1、 在较长的数之间可用下划线分开2、 当数字不说明位宽时,默认值为 32 位3、 X 或(z)在二进制中代表 1 位 x(或 z) ,在八进制中代表 3 位,在 16 进制中代表 4位4、 如果没有定义一个整数的位宽,其宽度为相应值中定义的位数。5、 如果定义的位宽比实际的位数长,通常在左边填 0 补位,但如果最左边一位为 x 或z,就相应的用 x 或 z 左边补位。6、 “?”是高阻态 z 的另一种表示符

3、号,在数字的表示中,字符“?”和 z 是完全等价的,可相互代替。7、 整数可以带符号,并且正负号应写在最左边,负数通常表示为二进制 补码的形式。8、 当位宽与进制缺省时表示的是 10 进制数9、 在位宽和之间,以及进制和数值之间允许出现空格,但和进制之间以及数值之间是不能出现空格的。要求掌握整数正确的书写方式。5、向量:宽度大于 1 位的变量;标量:宽度为 1 位的变量。定义 2 个 8 位 reg 型矢量:reg 7:0 ra, rb; 6、运算符(1)注意:逻辑运算符,例如逻辑与(2)位拼接运算符: 将两个或多个信号的某些位拼接起来7、initial 语句和 always 语句的区别 :i

4、nitial 语句常用于仿真中的初始化,initial 过程块中的语句只执行一次,不带触发条件;always 块内的语句则是不断重复执行的, Always 过程语句是可综合的,带有触发条件。8、posedge:上升 negedge:下降弄清楚同步和异步的概念。例如:如果 Nreset 和 Nset 是异步,时钟 clock 上升沿触发。always (posedge clk or posedge rst_n )if (! rst_n ) Q=0;else if(Nset) Q=1;else Q=D;9、阻塞赋值与非阻塞赋值的区别:非阻塞赋值在整个过程块结束时才完成赋值操作;阻塞赋值在该语句结束

5、时就立即完成赋值操作。在 always 过程块中,阻塞赋值可以理解为赋值语句是顺序执行的,而非阻塞赋值可以理解为赋值语句是并发执行的.10、条件语句,条件语句也称分支语句。11、顺序执行:阻塞赋值语句;并发执行:非阻塞赋值语句。12、用行为语句设计一个 8 位计数器,每次在时钟的上升沿,计数器加 1,当计数器逸出时,自动从零开始重新计数。计数器有同步复位端。module count(count,reset,clk);input clk,reset;output clk,reset;output 7:0 count;reg count;always (posedge clk)if(reset=1

6、)begin count=8b0;endelse if (count=8b11111111)begincount=9b0;endelse ifbegincount=count+1;endend module13 奇偶校验位产生器的 Verilog HDL 描述:module parity(evrn_bit,odd_bit,a);input7:0 a; output even_bit,odd_bit;assign even_bit=a; /生成偶校验位assign odd_bit=even_bit; /生成奇校验位endmodule;14、课本 197 页:8.2 有限状态机的 Verilog

7、描述参考例 8.3,例 8.7,学会用有限状态机设计序列检测器。module fsm_seq1111(x,z,clk,reset);input x,clk,reset;output reg z;reg4:0 state;parameter S0=d0,S1=d1,S2=d2,S3=d3,S4=d4;always (posedge clk)begin if(reset) begin state=S0;z=0; endelse casex(state)S0: begin if(x=0) begin state=S0;z=0;endelse begin state=S1;z=0;end endS1:

8、 begin if(x=0) begin state=S0;z=0;endelse begin state=S2;z=0;end endS2: begin if(x=0) begin state=S0;z=0;endelse begin state=S3;z=0;end endS3: begin if(x=0) begin state=S0;z=0;endelse begin state=S4;z=1;end endS4: begin if(x=0) begin state=S0;z=0;endelse begin state=S4;z=1;end enddefault: state=S0;e

9、ndcaseendendmodule15、状态机设计流水灯:module led_water(clk50M,rst,led);input clk50M;output7:0 led;input rst;wire clk_5hz;reg7:0 led_r;reg3:0 state;reg23:0 count;parameter s0=d0,s1=d1,s2=d2,s3=d3,s4=d4,s5=d5,s6=d6,s7=d7,s8=d8,s9=d9,s10=d10,s11=d11,s12=d12,s13=d13,s14=d14,s15=d15;always (posedge clk50M)begini

10、f(count=10000000)begin count=1b0;endelsecount=count+1b1;endassign clk_5hz=count23;assign led=led_r;always (posedge clk_5hz)beginif(!rst) state=s0;else case(state)s0: begin led_r=8b01111111; state=s1;ends1: begin led_r=8b10111111; state=s2;ends2: begin led_r=8b11011111; state=s3;ends3: begin led_r=8b

11、11101111; state=s4;ends4: begin led_r=8b11110111; state=s5;ends5: begin led_r=8b11111011; state=s6;ends6: begin led_r=8b11111101; state=s7;ends7: begin led_r=8b11111110; state=s8;ends8: begin led_r=8b11111100; state=s9;ends9: begin led_r=8b11111000; state=s10;ends10: begin led_r=8b11110000; state=s1

12、1;ends11: begin led_r=8b11100000; state=s12;ends12: begin led_r=8b11000000; state=s13;ends13: begin led_r=8b10000000; state=s14;ends14: begin led_r=8b00000000; state=s15;ends15: begin led_r=8b10100101; state=s0;enddefault: begin led_r=8b11111111;state=s0;endendcaseendendmodule 16、超前进位加法器的 Verilog HD

13、L 描述:module add_ahead (sum,cout,a,b,cin);input7:0 a,b; input cin;output7:0 sum;output cout;wire7:0 G,P; wire7:0 C,sum;assign G0=a0assign P0=a0|b0;assign C0=cin;assign sum0=G0P0C0;assign G1=a1assign P1=a1|b1;assign C1=G0|(P0assign sum0=G0P0C0;assign G2=a2assign P2=a2|b2;assign C2=G1|(P1assign sum2=G2

14、P2C2;assign G3=a3assign P3=a3|b3;assign C3=G2|(P2assign sum3=G3P3C3;assign G4=a4assign P4=a4|b4;assign C4=G3|(P3assign sum4=G2P2C2;assign G5=a5assign P5=a5|b5;assign C5=G4|(P4assign sum5=G5P5C5;assign G6=a6assign P6=a6|b6;assign C6=G5|(P5assign sum6=G6P6C6;assign G7=a7assign P7=a7|b7;assign C7=G6|(P

15、6assign sum7=G7P7C7;assign cout=G7|(P7endmodule17、课本 227 页:9.4 奇数分频与小数分频奇数分频的方法:用两个计数器,一个由输入时钟上升沿触发,一个由输入时钟下降沿触发,最后将两个计数器的输出相或,即可得到占空比为 50%的方波波形。小数分频的方法:1)用数字锁相环实现。先利用锁相环电路将输入时钟倍频,然后利用分频器对新产生的高频信号进行分频得到需要的时钟频率。2)先设计两个不同分频比的整数分频器,然后通过控制两种分频比出现的不同次数来获得所需的小数分频值,从而实现平均意义上的小数分频。偶数次分频的方法:比如进行 2n 次分频,只需在计数到 n-1 时,波形翻转即可;或者在最后一级加一个 2 分频器也可实现。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑环境 > 建筑资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报