
第一锁相环应用不需要直接调用内部的软核,而不是相关的代码。除法器的代码,我只是写代码除以8,其它大同小异。
模块div_8的(clk_100M,RST,clk_125M);
输入clk_100M和RST;
输出寄存器clk_125M ;/ / 8分频输出125M 第[3:0]临时
总是@(posedge clk_100M或negedge RST)
开始
(RST)
开始
温度<= 4; “B0000;
clk_125M <= 1'b0;
年底
否则如果(临时== 4'd3)
开始
clk_125M <=clk_125M; 温度<= 4'b0000;
结束
其他
温度<= TEMP +1 B1;
年底
endmodule
这仅仅是除以8码,16频率参考写这篇文章,其原理是一样的。
不可综合的语句也很有用 仿真时除了设计本身还可能有一些外围电路的行为需要模拟(这些外围电路不用来综合)这些就可以用不可综合的语句来实现 比编写可综合代码省时间 还可以方便地精确产生某种时序
设计本身包含的一些模块(比如RAM、模拟模块等)在仿真时一般都用不可综合语句建模 综合、布局布线时才加载相关的库
首先PLL应用就不用说明了,这个直接调用内部软核来实现,没有涉及到代码。就分频代码我简单写个8分频的代码,其他的大同小异。
module div_8(clk_100M,rst,clk_125M);
input clk_100M,rst;
output reg clk_125M;//8分频输出125M
reg[3:0] temp;
always@(posedge clk_100M or negedge rst)
begin
if(!rst)
begin
temp<=4'b0000;
clk_125M<=1'b0;
end
else if(temp==4'd3)
begin
clk_125M<=~clk_125M;
temp<=4'b0000;
end
else
temp<=temp+1'b1;
end
endmodule
这个只是8分频代码,其他的16分频可参考这个来写,原理是一样的。
根据错误提示:VerilogHDL不支持实数可知,题主是因为在代码中使用了实数(如33),需要注意的是,verilogHDL语言本质为为硬件描述语言,它所描述的结构最终要用电路来实现,这也是它和C语言等高级语言不同的地方。因此,实数形式在C语言中合法,但是在VerilogHDL中是非法的,因为实际电路只能实现0或者1的二进制代码,不能实现零点几的实数形式。为了解决这一问题,推荐题主将元和角分离,分别输出整数,如33元分为3元和3角,对应011这个二进制码,这样就可以避免小数了。
以上就是关于VerilogHDL语句求助。在一个特殊信号fpga_jul上升沿的50ns后将fpga_in的值赋给fpga_out,程序如下所示:全部的内容,包括:VerilogHDL语句求助。在一个特殊信号fpga_jul上升沿的50ns后将fpga_in的值赋给fpga_out,程序如下所示:、Verilog HDL程序不可综合有意义吗、用VerilogHDL设计一个FPGA定时器!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)