verilog的for循环里可以用if吗?
作者&投稿:伯牙吾台败 (若有异议请与网页底部的电邮联系)
if(i=2)这里出问题了,,数字怎么会同时小于0又要大于2呢??应该是||或判断才对
修改如下
int Su(int x)
{
int i,j;
for(i=x;i>=2;i--)
{
for(j=2;j<=i/2;j++)
{
if(i%j==0) {break;} //若能整除任何一个数,说明非素数,跳出内循环,检查下一个i
}
if(j>i/2) {return i;} //放到内循环之后而不是之内,检查j值,如果满足条件说明i是素数,返回i
}
}
另外就是你现在这个写法不一定可综合,应该需要在for前面加generate 然后最后加endgenerate。
h5中div属性加载不出背景图片
图片的链接URL不对,你需要引用绝对路径或同目录的子目录文件应用路径,或将图片转为Base64。绝对路径(例)background-image:url(https:\/\/zhidao.baidu.com\/images\/test.jpg)相对路径(例)background-image:url(\/images\/test.jpg)Base64路径(例)background-image:url(iVBORw0KGgoAAAANSUhEUgAAATo...
贾苑参芍: 是代码还是Testbench,代码中可以使用D触发器延时也就是使用“<=”进行赋值,要是在Testbench中可以直接使用“#”加时间,“# 5”就是延时5个单位
五营区17594434726: 什么是verilog语言? - ?
贾苑参芍: Verilog HDL是目前应用最为广泛的硬件描述语言.Verilog HDL可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合,仿真验证和时序分析等. Verilog HDL适合算法级,寄存器级,逻辑级,门级和版图级等各个层次的设计和描述...
五营区17594434726: 请大神看下这个verilog程序错到那里了,for循环不可以这样写吗?怎么一直编译通不过? - ?
贾苑参芍: 首先for循环真的不能这么用,你想一下这是硬件语言,不是软件语言,你的for循环将使得工具不断复杂同样的电路这是很浪费而且很没有必要的.具体有什么问题可以继续追问
五营区17594434726: 如何用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; else outdata <= indata[7:0]; endmodule 其实不用写这么复杂,直接用 wire [7:0] outdata; assign outdata = indata[7:0]; 也行
五营区17594434726: verilog hdl 语言的for循环会综合成什么 - ?
贾苑参芍: 首先是for可以综合的,for几次就会把你的电路复制几次,所以在非特殊情况下就最好不要用,当然在testbench就随便用了,当然建议你自己可以写写代码,然后看综合结果,看看for次数不同综合出的有什么不同
五营区17594434726: verilog initial中for循环赋值几个变量,这几个变量时同时赋值还是顺序赋值? - ?
贾苑参芍: 理论上讲for语句应该不能在除了always块之外的地方使用,所以你这个问题根本就不成立 就算是能在initial中使用的话,也应该是同时赋值的.initial块中的所有变量,只要没有加延时都应该是同时赋值的,initial语句块中的所有数据都会在仿真开始的一瞬间同时赋值
五营区17594434726: verilog语言 - ?
贾苑参芍: 这种写法是不可综合的.因为cnt会始终接地.从仿真语意上中间部分的语意是:遇到in的上升沿cnt就递增.但是如果cnt等于4的时候就会清零,并且翻转out的取值.这里并未对out做初始化所以是x 作者想要完成的是一个倍频器 in跳变5次out就会翻转...
五营区17594434726: Verilog语言中的“网表”具体指的什么? - ?
贾苑参芍: 电路的连接方式,就和altium designer等画图软件中,阻容件和电子芯片每个管脚的连接网表是一样的.Verilog是硬件语言,代码就是在画图.
五营区17594434726: verilog中用for描述的静态循环都可综合吗 - ?
贾苑参芍: 可以的,不过比较占用资源
五营区17594434726: verilog语言中的begin :BLOCK - A是什么意思啊!看不明这个啊,求高手 - ?
贾苑参芍: if(***) begin :BLOCK_AXXXXXXXX end else begin : BLOCK_BXXXXXXXX end意思是: 第一个begin/end内的模块命名为BLOCK_A 第二个begin/end内的模块命名为BLOCK_B做区分用, 一般情况下,可以不对begin/end命名.