Verilog HDL数字设计与综合 笔记(1)
来源:互联网 发布:上瘾网络剧全集在哪看 编辑:程序博客网 时间:2024/04/30 09:12
1.wire类型的线网是需要驱动源,register类型是不需要的
2.
3.不能将input ,inout类型的端口声明为reg数据类型,因为reg类型的变量是用来保存数值的,而输入端口只反映与其相连的外部信号的变化,并不保存信号的值
4.FPGA的门级
我们可以调用(实例引用)这些逻辑门来构造逻辑电路
5.
6.数据流建模
数据流建模意味着根据数据在寄存器之间的流动和处理过程对电路进行描述,而不是直接对电路的逻辑门进行实例引用。
连续赋值语句是verilog数据流建模的基本语句 即assign 语句 以下是assign 语句的特点
隐式连续赋值
普通赋值延时
assign #10 out=in1 & int2;//连续赋值语句中的延时
上面这段的意思是,当in1,int2发生变化时,out也会跟着变化,但是是先延时后计算,即out的值等于int1,int2变化后#10 后的值见图
隐式连续赋值延时
线网声明延时
6.4操作符
按位操作符
缩减操作符
6.5 带超前进位的4位全加器
module fulladd4(sum,c_out,a,b,c_in);
output [3:0] sum;
output c_out;
input [3:0] a,b;
input c_in;
//内部连线
wire p0,g0,p1,g1,p2,g2,p3,g3,p4,g4;
wire c4,c3,c2,c1;
//计算每一级的P
assign p0=a[0]^b[0],
p1=a[1]^b[1],
p2=a[2]^b[2],
p3=a[3]^b[3];
//计算每一级的g
assign g0=a[0]&b[0],
g1=a[1]&b[1],
g2=a[2]&b[2],
g3=a[3]&b[3];
//计算每一级的进位
//注意计算超前进位的算数方程中c_in等于C0;
assign c1=g0|(p0&c_in),
c2=g1|(p1&g0)|(p1&p0&c_in),
c3=g2|(p2&g1)|(p2&p1&g0)|(p2&p1&p0&c_in),
c4=g3|(p3&g2)|(p3&p2&p1&g0)|(p3&p2&p1&p0&c_in);
//计算加法的总和
assign sum[0]=p0^c_in,
sum[1]=p1^c1,
sum[2]=p2^c2,
sum[3]=p3^c3;
//进位输出赋值
assign c_out=c4;
endmodule
条件操作符的功能类似于硬件电路中的多路选择器或软件编程语言中的if -then -else 语句
- Verilog HDL数字设计与综合 笔记(1)
- Verilog HDL数字设计与综合 笔记(2)
- 学习《Verilog HDL数字设计与综合》笔记 第九章实用建模技术
- [verilog读书笔记]1.Verilog HDL数字设计
- Verilog HDL 与数字电路设计
- 设计与验证:verilog hdl
- Verilog HDL学习笔记1
- Verilog HDL常用综合语法
- Verilog HDL DDS设计(作业3)
- Verilog HDL 音乐盒设计
- Verilog HDL模块化设计
- Verilog HDL 学习笔记1-data type
- 基础笔记:Verilog HDL(未完成)
- Verilog HDL笔记
- 【Verilog HDL】学习笔记
- 【学习笔记】【第一章】【Verilog HDL数字集成电路设计方法概述】
- hjr教程-FPGA(一):verilog HDL 编程与 testbench 设计
- NYOJ91 阶乘之和 与全加器设计Verilog HDL
- Distinct Subsequences
- 【交互设计】如何描述你的产品
- windows下建立文件的换行符^M导致linux下的shell脚本运行错误的解决方案
- Android 4.0 Animator框架
- 输入一个整形数组,数组里有正数也有负数。。。。。。。。。。。。
- Verilog HDL数字设计与综合 笔记(1)
- 【Ruby】Ruby(面向对象程序设计的脚本语言)入门
- python的变量
- mutable,volatile
- Java常见面试题
- C++虚函数表分析
- ZOJ3829 ACM-ICPC 2014 亚洲区域赛牡丹江赛区现场赛K题 Known Notation 贪心
- linux本地创建yum源
- 注册activex控件时遇到的“DEBUG ASSERTION FAILED”问题