verilog模块的结构、数据类型、变量和基本运算符.ppt

上传人:sh****n 文档编号:7400791 上传时间:2020-03-21 格式:PPT 页数:43 大小:403.84KB
返回 下载 相关 举报
verilog模块的结构、数据类型、变量和基本运算符.ppt_第1页
第1页 / 共43页
verilog模块的结构、数据类型、变量和基本运算符.ppt_第2页
第2页 / 共43页
verilog模块的结构、数据类型、变量和基本运算符.ppt_第3页
第3页 / 共43页
点击查看更多>>
资源描述
第三章模块的结构 数据类型 变量和基本运算符 3 1模块的结构 module模块名 端口信息 输入 输出说明内部信号声明逻辑功能描述endmodule Verilog模块由两部分组成 端口信息和内部功能 moduleblock1 a b c d e inputa b c outputd e assignd a bendmodule 3 1模块的结构 Verilog模块的结构由在module和endmodule关键词之间的四个主要部分组成 端口信息 moduleblock1 a b c d 输入 输出说明 inputa b c outputd 内部信号 wirex 功能定义 assignd a x assignx bendmodule VerilogHDL模块的结构 请在下面的空格中填入适当的符号使其成为右图的Verilog模块 moduleblock1 a b input d assignd a b 编写VerilogHDL模块的练习 请在下面的空格中填入适当的符号使其成为右图的Verilog模块 moduleblock1 a b c d e inputa b c outputd e assignd a bendmodule 编写VerilogHDL模块的练习 moduleblock a b c outputc inputa b endmodule moduleblock3 a b c output 2 0 c input 2 0 a b blockb0 b b 0 a a 0 c c 0 blockb1 a 1 b 1 c 1 endmodule 模块的端口定义与调用 端口实现模块互连 要保证连接正确 本模块信号 另一模块信号 在Verilog模块中有三种方法可以生成逻辑电路 用assign语句 连续赋值语句 assigncs a0end VerilogHDL模块中的逻辑表示 如在模块中逻辑功能由下面三个语句块组成 assigncs a0end三条语句是并行的 它们产生独立的逻辑电路 而在always块中 begin与end之间是顺序执行的 并行和顺序逻辑关系的表示 Verilog模块中的信号 只有两种主要的信号类型 寄存器类型 reg在always块中被赋值的信号 往往代表触发器 但不一定是触发器 连线类型 wire用assign关键词指定的组合逻辑的信号或连线 Verilog模块中的信号要点 需要注意的是 寄存器 reg 类型不一定是触发器 它只是在always块中赋值的信号 Verilog中reg与wire的不同点 用寄存器 reg 类型变量生成组合逻辑举例 modulerw1 a b out1 out2 inputa b outputout1 out2 regout1 wireout2 assignout2 a always b out1 b endmodule Verilog中reg与wire的不同点 用寄存器 reg 类型变量生成触发器的例子 modulerw2 clk d out1 out2 inputclk d outputout1 out2 regout1 wireout2 assignout2 dendendmodule Verilog中两种不同的赋值语句 不阻塞 non blocking 赋值语句 always posedgeclk beginb a c b end Verilog中两种不同的赋值语句 阻塞 blocking 赋值语句 always posedgeclk beginb a c b end 两种不同的赋值语句区别要点 非阻塞 non blocking 赋值语句 b a 块内的赋值语句同时赋值 b的值被赋成新值a的操作 是与块内其他赋值语句同时完成的 建议在时序电路的模块中使用不阻塞赋值 组合逻辑的模块中使用阻塞赋值 阻塞 blocking 赋值语句 b a 完成该赋值语句后才能做下一句的操作 b的值立刻被赋成新值a 时序电路中硬件没有对应的电路 因而综合结果未知 3 2数据类型及常量和变量 数据类型用来表示硬件电路的数据存储和传送元素的总共有19种数据类型常用4种 reg型wire型integer型parameter型 3 2 1常量 数字整数常量 1 二进制整数 b或B 2 十进制整数 d或D 3 十六进制整数 h或H 4 八进制整数 o或O 数字表达方式 如 8 b10000011 4 hf 5 d12 d12 12x和z值 不定值和高阻值如 4 b10 x0 4 b101z 12 dz 12 d 8 h4x 3 2 1常量 数字负数 位宽前加 号 内部是补码如 1 32 1 32 hFFFFFFFF1 默认是32位 十进制下划线 仅增加可读性如 16 b10 x0 0000 0000 1111 AB 16 b01000001 01000010 3 2 1常量 参数 parameter 型参数是一个常量 经常用于定义时延和变量的宽度如 parameterBITWIDTH 8 parametere 32 a 8 b 16 模块引用另一模块的实例时 传递参数值 moduletop wire 3 0 A4 wire 3 0 F4 decode 3 4 D1 A4 F4 endmodule moduledecode A F parameterWidth 1 parameterP 2 endmodule 参数 parameter 型在一个模块改变另一模块的参数时 使用defparam命令 include top v include block v include note v moduletest wireW topT endmodule moduletop wireW blockB1 blockB2 endmodule moduleblock parameterP 0 endmodule modulenote defparamtest T B1 P 2 test T B2 P 3 endmodule 3 2 2变量 网络数据类型 表示结构实体之间的物理连接wire型 用来表示单个门驱动或连续赋值语句驱动的网络型数据 默认值为z 常用assign语句或实例元件的输出赋值 tri型 用来表示多驱动器驱动的网络型数据reg型 寄存器类型是数据储存单元的抽象 通过赋值语句可以改变寄存器储存的值 其作用与改变触发器储存的值相当 默认值为x 在always块内被赋值的每一个变量必须是reg型 wiretrireg型的定义格式相同 变量即在程序运行过程中其值可以改变的量 3 2 2变量 memory型 通过对reg型变量建立数组来对存储器建模 可以描述RAM型存储器 ROM存储器和reg文件 数组中的每一个单元通过一个数组索引进行寻址 如 reg 3 0 mm 7 0 变量即在程序运行过程中其值可以改变的量 mm 7 mm 6 mm 5 mm 4 mm 3 mm 2 mm 1 mm 0 mm 3 4 b0110 0110 mm 7 mm 6 mm 5 mm 4 mm 3 mm 2 mm 1 mm 0 3 3运算符及表达式 算术运算符 赋值运算符 拼接运算符 运算符按其功能可分为以下几类 按其所带操作数的个数运算符可分为三种 单目运算符 可以带一个操作数 操作数放在运算符的右边 二目运算符 可以带二个操作数 操作数放在运算符的两边 三目运算符 可以带三个操作 这三个操作数用三目运算符分隔开 思考题 1 模块由哪几部分组成 Verilog模块的结构由在module和endmodule关键词之间的四个主要部分组成 端口信息 moduleblock1 a b c d 输入 输出说明 inputa b c outputd 内部信号 wirex 功能定义 assignd a x assignx bendmodule 思考题 2 端口分为几种 端口分为输入输出和双向端口 3 为什么端口要声明信号的位宽 端口代表了电路的输入输出连接线 因此要明确连线的数量 4 能否说模块相当于电路图中的功能模块 端口相当于功能模块的引脚 能 思考题 5 模块中的功能描述可以由哪几类语句或语句块组成 它们出现的顺序会不会影响功能的描述 功能描述由 assign语句 实例化门电路和always块组成 不会 6 这几类描述中哪一种直接与电路结构有关 实例化门电路 思考题 7 最基本的Verilog变量有哪几种 最基本的Verilog变量 wire和reg 8 wire和reg型变量的差别是什么 无记忆和有记忆assign语句赋值和always块内赋值 9 由连续赋值语句assign复制的变量能否是reg型变量 不能 思考题 10 在always块中被赋值的变量能否是wire类型的 如果不能 那么必须是什么类型的 他们一定是实际的寄存器吗 不能 必须是reg类型 不一定是实际的寄存器 11 参数类型的变量有什么用处 用标识符表示一个常量 提高可读性和可维护性在模块或实例引用时 通过参数传递改变值 多层次模块构成的电路中 重新定义参数defparam 思考题 12 Verilog语法的参数传递和重新定义有什么直接的应用价值 使得已编写的从模块具有更大的灵活性 13 逻辑比较符小于等于 和非阻塞赋值符的表示完全一样 为什么Verilog在语句的解释和编译时不会搞错 逻辑比较符用在需要逻辑值的地方 通常与语句的后续要求必须是逻辑值 此时 为比较符 思考题 14 能否说实例引用的描述实际上就是严格意义上的电路结构 可以说 3 1模块的结构 3 1模块的结构 3 1模块的结构 3 1模块的结构 3 1模块的结构 3 1模块的结构 3 1模块的结构 3 1模块的结构 3 1模块的结构 3 1模块的结构 3 1模块的结构 3 1模块的结构 3 1模块的结构
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!