我们再从对可综合代码的支持角度来探讨systemverilog相较于verilog的优势。对于硬件设计,system
我们再从对可综合代码的支持角度来探讨systemverilog相较于verilog的优势。对于硬件设计,systemverilog引入了三种进程:always_ff、always_comb和always_latch。always_ff用于描述时序逻辑,对应fpga中的触发器,其内部应使用非阻塞赋值。
always @(posedge clk) 对应于 always_ff @(posedge clk)
always @* 对应于 always_comb 或 always_latch
SystemVerilog还引入了转换操作符,支持类型转换、位宽转换和符号转换。
类型转换:casting_type'(expression)
位宽转换:size'(expression)
符号转换:signed'(expression) 和 unsigned'(expression)
从端口映射的角度来看,SystemVerilog支持Verilog传统的一一映射方式,如下图代码第3行所示。同时也支持自动匹配,如代码第5行所示,.clk和.rst会自动与名为clk和rst的信号相连。而更为简洁的是代码第7行所示的.*连接方式,这表明所有端口将自动与其名字相同的信号相连。尽管这三种方式都是可综合的,但从代码风格角度而言,仍然建议采用第3行所示方式。在描述测试文件时,可以采用第7行所示方式。
在Verilog中,给一个信号的所有位赋值为1,需要采用如下图所示的方式,而SystemVerilog可以直接采用下图代码第12行所示的方式。同时此方式还适用于赋值全0、全X和全Z。
版权所有 @ FPGA技术驿站
转载请私信 | 获得授权后方可转载
菜鸟下载发布此文仅为传递信息,不代表菜鸟下载认同其观点或证实其描述。
版权投诉请发邮件到 cn486com#outlook.com (把#改成@),我们会尽快处理
Copyright © 2019-2020 菜鸟下载(www.cn486.com).All Reserved | 备案号:湘ICP备2022003375号-1
本站资源均收集整理于互联网,其著作权归原作者所有,如有侵犯你的版权,请来信告知,我们将及时下架删除相应资源