1,verilog语句执行顺序的疑问

可综合的都是并行执行的。其实也不难理解,verilog是硬件语言,也就可以看成是一个电路。在实际的电路中没办法延迟,没办法让一边先通电,再让另一边通电,所以一切都是同时进行的。这并行的前提都是“可综合”。如果是写testbench,会用到不可综合的模块,这些模块是行为级的,在实际电路中无法实现。比如task,比如阻塞赋值等等,这些都是有顺序的。
这个跟c语言差不多吧,begin end可以看作c中的功能具体解释:if(rst_i) 如果复位,等200us计数器置零,else 如果计数器当前状态为init_idle,200us计数器赋值一个已知值,不然就进行倒计时。实现的功能就是一个定时器的功能。时间个数*clk周期=定时200us

verilog语句执行顺序的疑问

2,硬件描述语言verilog的特点有哪些

作为硬件描述语言,Verilog HDL具有如下特点:  1. 能够在不同的抽象层次上,如系统级、行为级、RTL(Register Transfer Level)级、 门级和开关级,对设计系统进行精确而简练的描述;  2. 能够在每个抽象层次的描述上对设计进行仿真验证,及时发现可能存在的设计错误, 缩短设计周期,并保证整个设计过程的正确性;  3. 由于代码描述与具体工艺实现无关,便于设计标准化,提高设计的可重用性。如果 有C语言的编程经验,只需很短的时间内就能学会和掌握Verilog HDL,因此,Verilog HDL可以作为学习HDL设计方法的入门和基础。
verilog 或者vhdl都是很好找工作的,若是你做ic,前端后端都可以的,华为之类的公司;若是你做普通的研发,凡是有fpga或者cpld开发的都是可以的,属于硬件研发里工资比较牛掰的,好好学哦。

硬件描述语言verilog的特点有哪些

3,如何用Verilog语言取低八位

module test(clk,rst,indata,outdata);input clk,rst;input [23:0] indata;output [7:0] outdata;reg [7:0] outdata;always @ (posedge clk or negedge rst)if (!rst)outdata <= 0;elseoutdata <= indata[7:0];endmodule其实不用写这么复杂,直接用wire [7:0] outdata;assign outdata = indata[7:0];也行
always 不是循环语句,always 是一个进程块。 always@(a or b or c)我们经常能看到的always语句如上面那句,当括号里的a,b或c信号发生变化的时候,这个always模块就被激活,模块中的语句才能执行。括号里的信号称之为敏感信号列表。 所有的always块之间是并行的关系,谁在前谁在后不影响执行的顺序。for 是一个循环语句,但是不可以综合(编译)。for通常是用在测试文件里面。或者用于对ram附初值。比如定义了一个ram空间 reg [n-1:0] mem [word-1:0];初始化时可以用for循环integer i;for(i=0;imem[i]<=0; 这样就把ram的内容全部定义为0了。但是for不能用在电路实体中。 verilog是硬件描述语言,用来描述硬件的结构和行为,不是软件,不是c语言,有很大的不同,没有循环这种说法。可以说verilog做的程序实际和硬件工程师画图是一回事,每个语句,每个模块,表示的是使用了一块芯片,然后连上线这样,硬件电路哪儿来的循环一说,要注意好好区别。

如何用Verilog语言取低八位


文章TAG:verilog语言verilog  语言  语句  
下一篇