我正在使用Altera Quartus 2来做一个自定义的8位处理器,并且需要永远在我的笔记本电脑上进行编译.我只是使用模拟并在原理图(框图)和VHDL中制作我的处理器.现在编译需要大约10分钟,这是一个痛苦,因为我更多的是在项目的调试阶段,我必须修复内部时间并进行很多很少的更改,看看会发生什么.
我实际上并没有把它放在FPGA上,所以我需要"fitter"和"assembler"的编译阶段吗?
我可以更改一个lpm_ram_dq的内存文件的内容并在模拟中测试它而无需重新编译吗?
总之,任何人都知道如何使其编译更快?
我在Verilog中有256位值:
reg [255:0] val;
Run Code Online (Sandbox Code Playgroud)
我想定义一个使用VPI调用外部C的系统任务$ foo,所以我可以像这样调用$ foo:
$foo(val);
Run Code Online (Sandbox Code Playgroud)
现在,在C定义函数"富",我不能简单地读取参数作为一个整数(PLI_INT32),因为我有太多的位,以适应在其中的一个.但是,我可以将参数作为字符串读取,这与字节数组相同.这是我写的:
static int foo(char *userdata) {
vpiHandle systfref, args_iter, argh;
struct t_vpi_value argval;
PLI_BYTE8 *value;
systfref = vpi_handle(vpiSysTfCall, NULL);
args_iter = vpi_iterate(vpiArgument, systfref);
argval.format = vpiStringVal;
argh = vpi_scan(args_iter);
vpi_get_value(argh, &argval);
value = argval.value.str;
int i;
for (i = 0; i < 32; i++) {
vpi_printf("%.2x ", value[i]);
}
vpi_printf("\n");
vpi_free_object(args_iter);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如您所见,此代码将参数作为字符串读取,然后打印出字符串中的每个字符(也称为字节).这几乎完美.但是,该字节00始终被读取为20.例如,如果我按如下方式分配Verilog reg:
val = 256'h000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f;
Run Code Online (Sandbox Code Playgroud)
并使用它调用它$foo(val),然后C函数在模拟时打印它:
VPI: 20 01 02 …Run Code Online (Sandbox Code Playgroud) 在IEEE Std 1800-2012中,我们可以找到包的描述和这些信息:
类型,网络,变量,任务,函数,序列,属性和检查器可以在包中声明
我想知道,如果有任何特殊原因导致无法在包内定义接口?在我看来它可能是有用的,但显然标准的创建者不会同意.
所以我想出了两种在laravel 5. 第一种方式:显示图像我有一个路线(例如loadFile/profil/{profilID}/main),它返回:
return Response::download($filepath)
Run Code Online (Sandbox Code Playgroud)
我的图像存储在存储文件夹中,因此我无法通过 url 访问它们,因为:www.domain.com/sotrage/files/...显然不起作用。
另一种可能性是将图像存储在公共文件夹中并通过它们的 url 访问它们。
我的问题:我应该使用两种可能性中的哪一种,以及在 Laravel 中存储图像的最佳实践是什么。
如果每个新线程想要访问内存(在我的情况下特别是相同的数据库)并在其生命周期内执行读/写操作,那么线程是否会导致颠簸?
我认为这是真的.如果我的假设是正确的,那么最大化CPU利用率的最佳方法是什么?我如何确定某些特定数量的线程将提供良好的CPU利用率?
如果我的假设是错误的,请做适当的插图让我清楚地了解情景.
我想在 UIImageView 我的 ios 项目中使用 webp 图像,该项目采用 Swift 语言。
我尝试使用Matt Thompson 库 ,但它不适用于 Swift 项目。我已经导入了框架并完成了所有必需的任务,但有很多链接错误。
如何在 swift 代码中使用 UIImageView 中的 webp Image?
我尝试使用 pdfkit 从字符串生成 pdf 文件。但是,在结果中,所有换行符都\n将被忽略。因此,我得到了一个 pdf 文件,其中的字符串被打印为单个句子。例如:
import pdfkit
s = "Some text\n"
s += "Ok, let's add something more\n"
s += "And more..."
pdfkit.from_string(s,"file.pdf",{'encoding':'utf-8'})
Run Code Online (Sandbox Code Playgroud)
以下代码会产生以下输出(即包含以下文本的 pdf 文件):
一些文字 好的,让我们添加更多内容 还有更多...
然而,这就是我想要实现的目标:
一些文字
好的,让我们添加更多内容
和更多...
我正在尝试从由 modelsim 或 ghdl 执行的模拟中转储内部信号。一切正常使用:
对于modelsim,添加vhdl源,然后编译:
vsim -novopt work.uut_testbench
vcd file ../uut.vcd;
vcd limit 50000000;
vcd add -r /uut_testbench/uut_core/*;
run 6000
quit -sim
Run Code Online (Sandbox Code Playgroud)
对于 GHDL
ghdl -i --ieee=synopsys --warn-no-vital-generic --workdir=work --work=work ./uut*.vhd
ghdl -m --ieee=synopsys --warn-no-vital-generic --workdir=work --work=work uut_testbench
./uut_testbench --stop-time=6000ns --vcd=../uut.vcd
Run Code Online (Sandbox Code Playgroud)
我可以看到模拟信号,但不是全部。信号定义为
Type InternalState is (Idle,Valid,Stalled);
Signal sState,sPrevState :InternalState;
Run Code Online (Sandbox Code Playgroud)
从 vcd 中省略。这种行为对于modelsim 和ghdl 很常见。
我可以在 ghdl 生成的 vcd 中看到以下行
$comment sstate is not handled $end
Run Code Online (Sandbox Code Playgroud)
Modelsim 只是悄悄地忽略了这些信号
有解决方法吗?选择?
说我有一个类的引用,它是最终的像:
public final Mycalss ref;
Run Code Online (Sandbox Code Playgroud)
和MyClass有几个属性(不是最终的).现在,当我像这样构造MyClass对象时:
ref = new MyClass( some arguments);
Run Code Online (Sandbox Code Playgroud)
这是否意味着其他线程可以安全地查看Myclass的内容,因为它是最终引用的?
所以,我正在玩C指针和指针算术,因为我对它们不太满意.我想出了这段代码.
char* a[5] = { "Hi", "My", "Name", "Is" , "Dennis"};
char** aPtr = a; // This is acceptable because 'a' is double pointer
char*** aPtr2 = &aPtr; // This is also acceptable because they are triple pointers
//char ***aPtr2 = &a // This is not acceptable according to gcc 4.8.3, why ?
//This is the rest of the code, the side notes are only for checking
printf("%s\n",a[0]); //Prints Hi
printf("%s\n",a[1]); //Prints My
printf("%s\n",a[2]); //Prints Name
printf("%s\n",a[3]); //Prints Is
printf("%s\n",a[4]); …Run Code Online (Sandbox Code Playgroud)