ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

verilog语言入门教程

2020-05-27 23:53:28  阅读:334  来源: 互联网

标签:语句 ... wire 省略 语言 入门教程 总线 verilog posedge


转自https://www.cnblogs.com/jian-jia/archive/2019/11/24/11924371.html

 

module a(b, c, d,...z);//module: 模块头 a:模块名 (b,c,d,...z):端口列表
    input b;//输入声明
    input wire c;//输入声明线网类型用wire,wire可省略
    input wire [7:0] d;//[7:0]:输入总线位宽0~7所以是8bit总线
    output e;//输出声明
    output [7:0] f;//输出总线位宽说明,默认为wire类型,此处省略wire
    output reg [7:0] f;//输出总线寄存器类型用reg   ...//为了篇幅小一些省略e~y的声明,实际代码中不可省略
    assign d = a & b;//assign语句也叫数据流建模语句也叫连续赋值语句,后面接的是组合逻辑
    assign e = (f < g)?  1 : 0;//三目运算符
    
    always @ (posedge a or negedge b or posedge c...)//always语句,posedge为上升沿触发,negedge为下降沿触发,后面接信号表示当这个信号上升沿或下降沿时执行下面的程序
        begin //begin...end 相当于()
            if(!b)//if语句
                begin
                    h <= 4'b0000;//非阻塞赋值语句用<=,4'b0000表示位宽为4,二进制表示的数0000
                    i <= 32'haabbccdd;//此处表示32位宽,16进制表示的数aabbccdd
                end
    
            else//else表示分支
                case(j)//case语句
                    0 : k <= k + 1'b1;//verilog中没有自加的表示,所以用k = k + 1'b1
                    1 : if(k<m) begin  l <= 8'd7;j <= 2; end// j <= 2表示下一个时钟沿触发后跳到2:语句
                    2 : m < = 4'b0001 << 2;//<<移位符号
                 default: j <=0; //default语句表示当j取值不是上面列出的0,1,2时走这条语句
                endcase //case多路分支语句结束标志                 
        end//整个always循环结束标志     
endmodule//整个模块结束标志

 

标签:语句,...,wire,省略,语言,入门教程,总线,verilog,posedge
来源: https://www.cnblogs.com/Andromeda-Galaxy/p/12977553.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有