本帖最后由 mdyfpga 于 2022-3-29 08:45 编辑
【问题5】:我设计了一个模块,并且模块命名为latch,为什么软件会提示错误。 答:latch是VERILOG关键词,不能用于自己设计的模块命名或者信号名。所以要注意关键词。
【问题6】左移和右移,空出的位置是补0吗?答:是的。左移就是低位补0,右移就是高位补0。
【问题7】在verilog中到底应不应该用for循环?答:在硬件描述语言中for语句的使用较C语言等软件描述语言有较大的区别。在Verilog中除了在Testbench中使用for语句外,在RTL级编码中是却很少使用for循环语句。主要原因就是for循环会被综合器展开为所有变量情况的执行语句,每个变量独立占用寄存器资源,每条执行语句并不能有效的复用逻辑资源,造成巨大的资源浪费。简单来说:for循环几次,就是将相同的电路复制几次,因此循环次数越多,占用面积越大,综合就越慢。
【问题8】在Verilog中想要给一个信号赋值的位宽是可变的,应该怎么做?答:可以使用下面这个赋值方法:{WID{1'b1}}举例:din <= {WID{1'b1}},当WID为8的时候,din <= 8'b1111_1111,通过修改WID的值,可使赋值的位宽发生变化。
【问题9】data[b+7:b]<=rx[a+7:a]老师我想用for循环动态给data的区间赋值,但是报错说b不是常量怎么办?答:verilog中不支持位宽选择时 上边界和下边界均为变量。另外:不要用软件的思维来做FPGA设计
【问题10】问能不能在适中的下降沿采集数据呢,比如写成always@(negedge clk)答:整体系统中,建议都使用时钟上升沿,不要使用下降沿,否则不符合设计规范,造成系统的不稳定。FPGA系统会对全部路径进行路径分析,会计算两个D触发器之间的延时,确保这个时钟上升沿发出的数据,在下一个时钟上升沿能采到。假如上升沿发数据,下降沿来采集(或者下降沿发数据,上升沿采集),相当于时钟周期减半了,时序要求更高了。
Verilog语法问题汇总,需要更多的问题汇总请点击链接明德扬官网进行查找:http://www.mdy-edu.com/wentijieda/20210424/1359.html,希望对您的学习有所帮助,内容会不断更新。
|