matlab小技巧与verilog小技巧

0、背景

本篇文章是作者的一些经验,方便快速的查询,如果转载请务必备注,否则本作者将关闭CSDN的自己的所有文章!

1、代码注释快捷键

注释代码:选中代码,ctrl+R
取消注释:选中代码,ctrl+T

2、拼接[ ]

采用中括号,可以将两组数据进行拼接,

a=ones(1,9);
b=zeros(1,8);
c=[a,b]

在这里插入图片描述

3、以二进制写入文件

由于采用dec2bin是不能转换负数的,这一点要注意了,那么就需要表示负数的补码形式,补码形式很简单,就是判断某个数是否小于0,小于0的数就加上2的N次方,这样既可转换为无符号的十进制,再将其十进制用dec2bin转换为二进制,就是负数的补码。
在这里插入图片描述
以下给出常用的代码:

fid=fopen('D:\quartus_Project\Liruifeng_tem\DO_Pro\CP2\CP_2_4_matlab_alt_mixNCO\sin.txt','w');
%注意在打开文件之前首先要建立好目录路径
for k=1:length(Q_s)
    B_s=dec2bin(Q_s(k)+(Q_s(k)<0)*2^N,N);  %Q_s小于0就为1,大于0就为0
    %k;
    for j=1:N
       if B_s(j)=='1'
           tb=1;
       else
           tb=0;
       end
       fprintf(fid,'%d',tb);  
    end
    fprintf(fid,'\r\n');
end
fprintf(fid,';'); 
fclose(fid);

4、verilog的文件写入操作

//将混频滤波后的的1.25MHz单频信号dout写入外部TXT文件中(out.txt)

integer file_out;
initial
begin
file_out=$fopen("out.txt");
	//文件必须放到simulation\modelsim的文件夹中
	if(!file_out)
	begin
		$display("could not open file!");
		$finish;
	end
end

wire clk_write;
wire signed[19:0] dout_s;		//将混频后的数据,转换为有符号数
assign dout_s=dout;
assign clk_write=clk&(rst);    //产生写入的时钟信号,复位状态时候不写入数据

always @ (posedge clk_write)
   $fdisplay(file_out,"%d",dout_s);	//将混频后输出的有符号的数据,写入file_out代表的out.txt文件中

5、verilog的文件读取操作

//从外部TXT文件中读入数据作为测试激励
reg [9:0] stimulus[1:data_num];    //用于存储从文本中读取的数据,全部存放于数组stimulus中
integer address=0; 
 initial
begin
$readmemb("sin.txt",stimulus);//文件必须放到simulation\modelsim的文件夹中
	repeat(data_num)			
		begin
		address=address+1;
		din=stimulus[address];
		#clk_period;
		end
end 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值