- 1、本文档共57页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[数学]Verilog数字系统设计1
逻辑运算符 表示运算关系的:“真”(1)与“假”(0) ? 逻辑与AND || ? 逻辑或OR ! ? 逻辑非 NOT 操作数等价成一位值: 0, 1 or x Result is ONE bit value: 0, 1 or x A = 6; A B ? 1 0 ? 0 B = 0; A || !B ? 1 || 1 ? 1 C = x; C || B ? x || 0 ? x 关系运算符 ? 大于 ? 小于 = ? 大于等于 = ? 小于等于 结果是一位的逻辑值: 0, 1 or x 1 0 ? 1 ’b1x1 = 0 ? x 10 z ? x 相等于全等运算符 == ? logical equality != ? logical inequality === ? case equality !== ? case inequality 4’b 1z0x == 4’b 1z0x ? x 4’b 1z0x != 4’b 1z0x ? x 4’b 1z0x === 4’b 1z0x ? 1 4’b 1z0x !== 4’b 1z0x ? 0 Return 0, 1 or x Return 0 or 1 移位运算符 ? 右移 ? 左移 Result is same size as first operand, always zero filled a = 4’b1010; ... d = a 2; // d = 0010 c = a 1; // c = 0100 连接运算符 {op1, op2, ..} ? concatenates op1, op2, .. to single number 操作数必须标明位宽 !! reg a; reg [2:0] b, c; .. a = 1’b 1; b = 3’b 010; c = 3’b 101; catx = {a, b, c}; // catx = 1_010_101 caty = {b, 2’b11, a}; // caty = 010_11_1 catz = {b, 1}; // WRONG !! 重复信号的拼接方法 .. catr = {4{a}, b, 2{c}}; // catr = 1111_010_101101 条件运算符 Verilog中唯一的三目运算符 格式: 条件表达式 ? 条件真表达式:条件假表达式 Like a 2-to-1 mux .. 若条件表达式为不定态,则结果为后两个表达式的逐位比较结果 A B Y sel Y = (sel)? A : B; 0 1 运算符的优先级 * 数字 (iii) 如果 size(位宽)没标出,默认值是32位,每个字母用8位ASII码值表示 如果 radix(进制)没标出,默认为十进制 15 = size’d 15 数据类型 是对硬件电路中的信号连线和寄存器等物理量的描述,而不是一般一般计算机语言的整型、实型等 Verilog中两种数据类型:线型wire和寄存器型reg,区别在于: 驱动方式(赋值方式) 保持方式 硬件实现 线型数据类型nets (i) 用于连接器件原件,相当于版图中的金属走线 当某个节点没有任何连接时,等效为高阻态 nets数据类型 wire wand (wired-AND) wor (wired-OR) tri (tri-state) 下面的例子中:只要A或者B发生变化,Y的值就会持续的自动更新 线型数据类型nets (ii) A B Y wire Y; // declaration assign Y = A B; B A Y wand Y; // declaration assign Y = A; assign Y = B; wor Y; // declaration assign Y = A; assign Y = B; A Y dr tri Y; // declaration assign Y = (dr) ? A : z; Reg型 可以用来存储数据 可用来表示always模块内的指定信号 Only one type: reg reg A, C; // declaration // assignments are always done inside a procedure A = 1; C = A; // C gets the logical value 1 A = 0; // C is still 1 C = 0; // C is now 0 寄存器保持最后一次的赋值 端口定义 module reg or net net module
文档评论(0)